`

JavaSwing的JScrollBar使用

阅读更多

JavaSwing的JScrollBar使用

JScrollBar的使用: 类层次结构图:

java.lang.Object

--java.awt.Component

--java.awt.Container

--javax.swing.JComponent

--javax.swing.JScrollBar

在上一节我们看到JScrollPane利用ScrollBar的功能使它可以利用滚动轴滚动窗口,乍看之下我们并不会直接使用到 JScrollBar的方法,因为JScrollPane都帮我们处理得好好的,但如果我们想对滚动轴做更细的设置,例如在拖曳时一次滚动多少 区域等,就必须了解JScrollBar所提供的功能了。

JScrollBar在处理窗口的滚动并不像JScrollPane那么容易,看起来也比 JScrollPane简单得许多,因此通常在实现时我们会取一些JScrollBar所提供的功能,来补足我们对JScrollPane的需要,而不会直 接拿JScrollBar来做滚动操作。下面是构造函数:

JScrollBar构造函数:

JScrollBar():建立一个垂直的滚动轴,默认参数值分别为:

minimum=0,maximum=100,value=0,extent=10. JScrollBar(int orientation):

建立一个指定方向的滚动轴,默认参数值分别是: minimum=0,maximum=100,value=0,extent=10. JScrollBar(int orientation,int value,int extent,int min,int max):建立一个指定方向的滚动轴,并设置value、extent、 mimimum与maximum四个参数值。 JScrollBar四个参数的意义如下:

value:JScrollBar一开始的起始位置,若设为0表示在滚动轴的最顶端。 extent:延伸区,限制滚动轴可滚动的范围。例如,若minimum值设为0,maximan值设为100,而extent值设为20,则滚动轴可滚动的 区域大小为100-20-0=80个刻度,滚动的范围从0~80。若minimum值设为20,maximan值设为100,而extent值设为30,则滚动轴可滚 动的区域大小为100-30-20=50个刻度,滚动的范围从20~70。因此可知,延伸区设得越大,可滚动的范围就起小。 minimum:设置最小刻度值。 maximum:设置最大刻度值。

JScrollBar最常用到的就是AdjustmentEvent事件,当用户拖曳滚动轴时就会触发此事件。因此若要处理这类事件,就必须实现 AdjustmentEvent界面。此界面定义了一个adjustmentValueChanged()方法,实现此方法就能够得到滚动轴的相关信息。

下面简单的举个例子:

 




package com;

/**
 * 
 * @author chenhailong
 *
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JScrollBar1 implements AdjustmentListener {
	JScrollBar scrollBar1;
	JScrollBar scrollBar2;
	JPanel panel1;
	JLabel label2 = new JLabel("刻度:", JLabel.CENTER);

	public JScrollBar1() {
		JFrame f = new JFrame("JScrollBarDemo");
		Container contentPane = f.getContentPane();
		panel1 = new JPanel();
		scrollBar1 = new JScrollBar(JScrollBar.VERTICAL, 10, 10, 0, 100);
		// 设置拖曳滚动轴时,滚动轴刻度一次的变化量。
		scrollBar1.setUnitIncrement(1);
		// 设置当鼠标在滚动轴列上按一下是,滚动轴一次所跳的区块大小
		scrollBar1.setBlockIncrement(10);
		scrollBar1.addAdjustmentListener(this);
		// 建立一个空的JScrollBar
		scrollBar2 = new JScrollBar();
		// 设置滚动轴方向为水平方向
		scrollBar2.setOrientation(JScrollBar.HORIZONTAL);
		// 设置默认滚动轴位置在0刻度的地方。
		scrollBar2.setValue(0);
		// extent值设为20
		scrollBar2.setVisibleAmount(20);
		// minmum值设为10
		scrollBar2.setMinimum(10);
		// maximan值设为60,因为minmum值设为10,可滚动的区域大小为60-20-10=30
		// 个刻度,滚动范围在10~40中。
		scrollBar2.setMaximum(60);
		// 当鼠标在滚动轴列上按一下时,滚动轴一次所跳的区块大小为5个刻度
		scrollBar2.setBlockIncrement(5);
		scrollBar2.addAdjustmentListener(this);
		contentPane.add(panel1, BorderLayout.CENTER);
		contentPane.add(scrollBar1, BorderLayout.EAST);
		contentPane.add(scrollBar2, BorderLayout.SOUTH);
		contentPane.add(label2, BorderLayout.NORTH);
		f.setSize(new Dimension(200, 200));
		f.setVisible(true);
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}

	// 实现adjustmentValueChanged方法。当用户改变转轴位置时,会将目前的滚动轴刻度写在labe2上。
	public void adjustmentValueChanged(AdjustmentEvent e) {
		if ((JScrollBar) e.getSource() == scrollBar1)
			// e.getValue()所得的值与scrollBar1.getValue()所得的值一样。
			label2.setText("垂直刻度" + e.getValue());
		if ((JScrollBar) e.getSource() == scrollBar2)
			label2.setText("水平刻度" + e.getValue());
	}

	public static void main(String[] args) {
		new JScrollBar1();
	}

}
  • 大小: 12.4 KB
  • 大小: 14.2 KB
  • 大小: 14.2 KB
0
1
分享到:
评论
3 楼 1641606815 2012-05-01  
谢谢!您是一个好细心的人啊!为了一个评论而去寻找以前的代码,值得学习。
2 楼 chenhailong 2012-04-26  
1641606815 写道
能不能添加效果图


哈哈 我为了你找了我好长时间以前写的代码,还行 找到了
这里给你效果图,要顶哦
1 楼 1641606815 2012-04-26  
能不能添加效果图

相关推荐

    java swing-JScrollBar的使用

    JScrollBar 是 Java Swing 库提供的一个用于创建滚动条的组件,常用于在用户界面中显示和控制可滚动组件(如 JScrollPane)的滚动位置。

    java swing

    Java Swing 是Java平台上用于构建图形用户界面(GUI)的库,它是Java Foundation Classes (JFC) 的一部分。Swing 提供了一套丰富的组件集合,这些组件可以用来创建功能丰富的桌面应用程序。这本书《Java Swing》由O'...

    Java Swing数据模型

    Java Swing 是Java GUI库的一部分,用于构建桌面应用程序。在Swing中,数据模型是一个关键概念,它将数据和用户界面的表示分离开来,使得代码更易于管理和维护。以下是关于"Java Swing数据模型"的详细解释: 1. **...

    java swing4

    在Java Swing框架中,`JScrollBar`、`JSlider` 和 `JProgressBar` 这三个组件被用来提供在有限区间内的可视化和选择功能。这些组件允许用户方便地从该区间内选择一个值或简单地观察其当前状态。 #### Bounded Range...

    注册面板的java(Swing)实现,源码。

    在Java编程领域,Swing库是用于构建图形用户界面(GUI)的重要工具,它提供了丰富的组件和功能,使得开发者能够创建美观且功能丰富的桌面应用程序。本项目标题提及的"注册面板的java(Swing)实现",即使用了Swing库...

    PhotoShopDemo_java_窗口_JTableDemo_

    - JScrollBar是Java Swing中用于滚动的组件,常与JScrollPane一起使用,为大表格或内容过多的组件提供滚动查看的功能。 - 滑轮有两种模式:水平和垂直,可以通过setOrientation()方法设置。 - 滑轮的值可以通过...

    java的Swing控件实例

    Java的Swing库是Java Standard Edition (J2SE)的一部分,用于构建图形用户界面(GUI)应用程序。Swing提供了一套丰富的组件,让开发者能够创建功能强大、美观的桌面应用。在Swing中,控件是指可以交互的GUI元素,如...

    java里的swing教程.ppt

    Swing 组件的类体系结构包括 JFrame、JDialog、JWindow、JComponent、JContainer、JObject、JOptionPane、JMenuBar、JList、JLabel、JComboBox、JText、JPanel、JScrollBar 等。 Swing 组件的优点 Swing 组件的优点...

    java实验报告4.docx

    在Java编程语言中,GUI(图形用户界面)的构建是通过使用AWT(Abstract Window Toolkit)和Swing库来实现的。本实验报告主要涵盖了Java Swing中的组件使用、布局管理和事件处理,这些都是Java GUI编程的基础。 首先...

    java用滚动条实现的调色板(swing)

    java用滚动条实现的调色板(swing)

    java---调色板

    该程序展示了如何在Java中使用`JScrollBar`组件以及如何响应滚动条值的变化。 #### 二、核心代码解析 1. **导入必要的包** ```java import java.awt.Color; import java.awt.GridLayout; import java.awt....

    gui swing 控件-源代码

    描述中的“java gui中,swing所有控件的使用例子”涵盖了Swing库中几乎所有的组件,例如: 1. 基本组件:JButton(按钮)、JLabel(标签)、JTextField(文本字段)、JTextArea(多行文本区域)、JCheckBox(复选框...

    Swing事件源可能触发的事件

    在Java Swing库中,用户界面(UI)组件是事件的源,它们能够触发多种类型的事件,这些事件通常与用户的交互、组件的状态变化或应用程序的内部操作相关。以下是对标题和描述中提到的Swing组件及其可能触发的事件的...

    Java-GUI介绍和使用

    - **Swing组件**:Swing组件类位于`javax.swing`包中,这些组件具有更丰富的功能和更好的跨平台兼容性,如`JButton`、`JCheckBox`和`JScrollBar`等。 ##### 2.2 容器类 容器类是一种特殊的组件,它可以包含其他...

    swing组件介绍(一)

    1. **基础组件**:Swing提供了许多基础组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)、复选框(JCheckBox)、单选按钮(JRadioButton)、滚动条(JScrollBar)、文本域(JTextArea)和列表(JList...

    JAVA程序设计:第十讲 Java的GUI设计 之 Swing.pdf

    Java的GUI设计主要聚焦在如何构建用户界面,而Swing是Java中用于创建图形用户界面(GUI)的一个重要库,它是建立在AWT(Abstract Window Toolkit)基础之上的。AWT是Java最初提供的用于创建GUI的基本组件集合,而...

    java美化JScrollPanel的滚动条

    主要代码: setTitle("滚动美化");...(JScrollBar.VERTICAL)); jScrollPane.getHorizontalScrollBar().setUI(new ScrollBarUIEx (JScrollBar.HORIZONTAL)); container.add(jScrollPane); setVisible(true);

    Java语言程序设计(一)课后习题第十二章(附答案).doc

    3. **不可修改的文本**:通常指的是文本字段(Text Fields),在Java中,如果用户不能修改文本,可能是使用了`javax.swing.JLabel`或设置了只读属性的`javax.swing.JTextField`。 4. **AWT和Swing**: - AWT...

    滚动条的绘制方法 滚动条的绘制方法滚动条的绘制方法

    我们将以Java Swing库为例,因为它提供了丰富的API用于自定义滚动条。 首先,滚动条通常由三个主要部分组成:滑块(thumb)、轨道(track)和箭头(arrow)。滑块表示当前显示的内容部分,轨道是滑块移动的区域,而...

Global site tag (gtag.js) - Google Analytics