java - 如何在 jpanel 中切换文本
问题描述
在我的 JPanel 中,我有两个 JLabel。顶部标签显示时间,底部标签显示日期。
我正在尝试实现一个 JToggleButton,它将时间从 12 小时格式切换到 24 小时格式,反之亦然。问题是,切换按钮没有改变时间。我应该怎么做才能解决问题?非常感激!
完整代码:
package clock;
import java.awt.*;
import java.awt.event.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.*;
public class ClockPanel extends JPanel {
private Date getTime, getDate;
private JToggleButton hourTypeButton;
private JLabel timeLabel, dateLabel;
private SimpleDateFormat timeFormat, dateFormat;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame("Clock");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setSize(640, 360);
ClockPanel clockPanel = new ClockPanel();
frame.add(clockPanel);
frame.setVisible(true);
}
});
}
public ClockPanel() {
timeFormat = new SimpleDateFormat("hh:mm a");
dateFormat = new SimpleDateFormat("EEEE, MMMM dd, yyyy");
hourTypeButton = new JToggleButton("12-Hour");
hourTypeButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
timeFormat = new SimpleDateFormat((hourTypeButton.isSelected() ? "kk" : "hh") + ":mm a");
hourTypeButton.setText((hourTypeButton.isSelected() ? "24" : "12") + "-hour");
}
});
add(hourTypeButton);
getTime = new Date();
timeLabel = new JLabel(timeFormat.format(getTime));
timeLabel.setFont(new Font("Segoe UI", Font.PLAIN, 140));
add(timeLabel);
getDate = new Date();
dateLabel = new JLabel(dateFormat.format(getDate));
dateLabel.setFont(new Font("Segoe UI", Font.PLAIN, 50));
dateLabel.setForeground(Color.GRAY);
add(dateLabel);
}
}
解决方案
推荐阅读
- selenium - 硒中 driver.quit() 和 driver.close() 之间的区别
- javascript - 在数组上推送“未定义”会消耗大量内存?
- ruby - 尝试在 ruby 中使用 open-uri,一些 HTML 内容以“正在加载...”的形式出现
- mysql - Mysql Left Join DataTable 服务器端 Codeigniter
- javascript - 如何从 javascript 函数内部调用 Polymer 对话框
- jquery - 在jQuery神秘中按类大写字符串
- python - SQLAlchemy/psycopg2:JSONB 列作为字符串而不是字典 Python 返回
- c# - 从 .NET 验证 dll 具有有效签名且未被修改
- c++ - 如何查看向量中的所有元素是否相同?
- java - Angular 6:如何将 html 文件包含到组件中?