JavaSwing 时间控件
介绍
在JavaSwing中,时间控件是一种常见的用户界面元素,用于显示和选择时间。它提供了用于输入和显示时间的图形界面组件,使用户能够方便地选择特定的时间。JavaSwing时间控件可以用于各种类型的应用程序,包括日历、计划、时钟和预约等。
使用示例
下面是一个简单的示例,展示了如何在JavaSwing中使用时间控件:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TimePickerExample extends JFrame {
private JLabel label;
private JButton button;
public TimePickerExample() {
setTitle("Time Picker Example");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
label = new JLabel("Selected time: ");
panel.add(label);
button = new JButton("Select Time");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String time = showTimePicker();
label.setText("Selected time: " + time);
}
});
panel.add(button);
add(panel);
setVisible(true);
}
private String showTimePicker() {
JSpinner spinner = new JSpinner(new SpinnerDateModel());
JSpinner.DateEditor editor = new JSpinner.DateEditor(spinner, "HH:mm:ss");
spinner.setEditor(editor);
spinner.setValue(new java.util.Date());
int result = JOptionPane.showOptionDialog(null, spinner,
"Select Time", JOptionPane.OK_CANCEL_OPTION,
JOptionPane.PLAIN_MESSAGE, null, null, null);
if (result == JOptionPane.OK_OPTION) {
java.util.Date date = (java.util.Date) spinner.getValue();
return date.toString();
}
return "";
}
public static void main(String[] args) {
new TimePickerExample();
}
}
代码解析
上述示例中的代码使用了JavaSwing的各种组件和类,实现了一个简单的时间选择器。下面对代码进行解析:
首先,创建一个继承自JFrame的类TimePickerExample
,用于显示时间选择器的窗口。
public class TimePickerExample extends JFrame {
//...
}
在类的构造函数中,设置窗口的标题、大小和关闭方式,并创建一个JPanel,用于放置其他的组件。
public TimePickerExample() {
setTitle("Time Picker Example");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
//...
}
接下来,创建一个JLabel组件,用于显示选择的时间,并将其添加到面板中。
label = new JLabel("Selected time: ");
panel.add(label);
再创建一个JButton组件,用于触发时间选择器的显示,并添加一个监听器,在用户选择时间后更新显示的时间标签。
button = new JButton("Select Time");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String time = showTimePicker();
label.setText("Selected time: " + time);
}
});
panel.add(button);
然后,将面板添加到窗口中,并设置窗口可见。
add(panel);
setVisible(true);
在TimePickerExample
类中定义了一个私有方法showTimePicker()
,用于显示时间选择器对话框,并返回用户选择的时间。
private String showTimePicker() {
JSpinner spinner = new JSpinner(new SpinnerDateModel());
JSpinner.DateEditor editor = new JSpinner.DateEditor(spinner, "HH:mm:ss");
spinner.setEditor(editor);
spinner.setValue(new java.util.Date());
int result = JOptionPane.showOptionDialog(null, spinner,
"Select Time", JOptionPane.OK_CANCEL_OPTION,
JOptionPane.PLAIN_MESSAGE, null, null, null);
if (result == JOptionPane.OK_OPTION) {
java.util.Date date = (java.util.Date) spinner.getValue();
return date.toString();
}
return "";
}
在showTimePicker()
方法中,创建了一个JSpinner组件,并设置其编辑器为JSpinner.DateEditor
,以显示时间的格式。
JSpinner spinner = new JSpinner(new SpinnerDateModel());
JSpinner.DateEditor editor = new JSpinner.DateEditor(spinner, "HH:mm:ss");
spinner.setEditor(editor);
然后,设置JSpinner的初始值为当前时间。
spinner.setValue(new java.util.Date());
接下来,使用JOptionPane显示一个选项对话框,其中包含了刚才创建的JSpinner组件。