任务:利用 Java 中提供的基本组件和事件处理机制完成程序的编写。 要求与提示:
1.窗体的基本界面与组件图1程序界面窗体中包含一个面板,面板中包含如下几个组件(图1):(1)两个标签组件,第一个标签组件上面显示提示信息:“Count:”;第二个标签组...
1. 窗体的基本界面与组件
图1 程序界面 窗体中包含一个面板,面板中包含如下几个组件(图 1):
(1) 两个标签组件,第一个标签组件上面显示提示信息:“Count:”;第二个 标签组件,用于显示当前的计数值,该标签组件的边框类型设置为蚀刻 类型(EtchedBorder)
(2) 一个 JSlider 组件,值的范围是 0~50,显示刻度及标签。
(3) 两个按钮,一个按钮上显示 Click Me;第二个按钮上面显示 Reset; 2. 程序基本功能要求:
(1) 当点击 Click Me 按钮时,显示计数信息的标签上的值加 1,JSlider 组件 的值也设置为当前的计数值;
(2) 当点击 Reset 按钮时,显示计数信息的标签上显示的值重置为 0,JSlider 组件的值也设置为 0;
(3) 拖动 JSlider 组件的滑块并释放鼠标后,计数标签上显示 JSlider 组件的当 前值。
3. 相关提示:
(1) 字符串转换为整数:
String s="123";
int value=Integer.parseInt(s); (2) 整数转换为字符串
int value=234;
String s2=Integer.toString(value); 或者 s2=""+value;
(3) 设置边框: 先创建边框对象:
Border etched = BorderFactory.createEtchedBorder();
然后调用组件的 setBorder 方法进行设置,如果该组件为 jtlCount: jtlCount. setBorder(etched);
(4)拖动 JSlider 产生 StateChanged 事件,因此事件监听器应该是实现了 ChangeListener 接口的类的对象,注册事件监听器对象调用的是组件的 addChangeListener 方法,ChangeListener 接口的定义形式为:
public Interface ChangeListener{
void stateChanged(ChangeEvent e) ;
} 展开
图1 程序界面 窗体中包含一个面板,面板中包含如下几个组件(图 1):
(1) 两个标签组件,第一个标签组件上面显示提示信息:“Count:”;第二个 标签组件,用于显示当前的计数值,该标签组件的边框类型设置为蚀刻 类型(EtchedBorder)
(2) 一个 JSlider 组件,值的范围是 0~50,显示刻度及标签。
(3) 两个按钮,一个按钮上显示 Click Me;第二个按钮上面显示 Reset; 2. 程序基本功能要求:
(1) 当点击 Click Me 按钮时,显示计数信息的标签上的值加 1,JSlider 组件 的值也设置为当前的计数值;
(2) 当点击 Reset 按钮时,显示计数信息的标签上显示的值重置为 0,JSlider 组件的值也设置为 0;
(3) 拖动 JSlider 组件的滑块并释放鼠标后,计数标签上显示 JSlider 组件的当 前值。
3. 相关提示:
(1) 字符串转换为整数:
String s="123";
int value=Integer.parseInt(s); (2) 整数转换为字符串
int value=234;
String s2=Integer.toString(value); 或者 s2=""+value;
(3) 设置边框: 先创建边框对象:
Border etched = BorderFactory.createEtchedBorder();
然后调用组件的 setBorder 方法进行设置,如果该组件为 jtlCount: jtlCount. setBorder(etched);
(4)拖动 JSlider 产生 StateChanged 事件,因此事件监听器应该是实现了 ChangeListener 接口的类的对象,注册事件监听器对象调用的是组件的 addChangeListener 方法,ChangeListener 接口的定义形式为:
public Interface ChangeListener{
void stateChanged(ChangeEvent e) ;
} 展开
1个回答
展开全部
public class Q1883417635953614668 {
public static void main(String[] args) {
EventQueue.invokeLater(() -> {
final JFrame frame = new JFrame("Counter");
final JLabel label = new JLabel("Count");
final JLabel display = new JLabel("0");
final JButton click = new JButton("Click Me");
final JButton reset = new JButton("Reset");
final AtomicInteger counter = new AtomicInteger(0);
final JSlider slider = new JSlider();
display.setBorder(BorderFactory.createEtchedBorder());
slider.setPaintLabels(true);
slider.setPaintTicks(true);
slider.setPaintTrack(true);
slider.setMinorTickSpacing(1);
slider.setMajorTickSpacing(10);
slider.setLabelTable(slider.createStandardLabels(10));
slider.setValue(0);
slider.setMinimum(0);
slider.setMaximum(50);
click.addActionListener((ActionEvent e) -> {
int currentValue = counter.incrementAndGet();
display.setText(Integer.toString(currentValue));
slider.setValue(currentValue);
});
reset.addActionListener((ActionEvent e) -> {
counter.set(0);
display.setText(Integer.toString(counter.intValue()));
slider.setValue(0);
});
slider.addChangeListener((ChangeEvent e) -> {
int currentValue = slider.getValue();
counter.set(currentValue);
display.setText(Integer.toString(currentValue));
});
final JPanel panel = new JPanel(new GridLayout(2, 2, 5, 5));
panel.add(label);
panel.add(display);
panel.add(click);
panel.add(reset);
frame.add(panel, BorderLayout.CENTER);
frame.add(slider, BorderLayout.PAGE_END);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
});
}
}
需要java 8
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询