java - 更新 JFrame 中文本的按钮

标签 java swing jframe

如何创建更新 JFrame 中文本的按钮?

我只是想创建一个大标签,当我按下更新按钮时,该标签会以文本形式显示大量信息。

这不起作用:

public void JFrameTest2() {
     JFrame frame = new JFrame();
    frame.setSize(300, 125);
    frame.setUndecorated(true);
    frame.setLayout(new GridBagLayout());
    frame.getContentPane().setBackground(new Color(255, 115, 100));
    frame.setAlwaysOnTop(true);
    Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize();
    Insets toolHeight = Toolkit.getDefaultToolkit().getScreenInsets(
            frame.getGraphicsConfiguration());
    frame.setLocation(scrSize.width - frame.getWidth(), scrSize.height
            - toolHeight.bottom - frame.getHeight());
    frame.setVisible(true);

    final JTextArea Text = new JTextArea(""+System.currentTimeMillis()); 
     JButton NewButton2 = new JButton(new AbstractAction() {
    @Override
        public void actionPerformed(final ActionEvent e) {

        Text.revalidate();
        Text.repaint();

        }
    }); 
    frame.add(Text);
    frame.add(NewButton2);
}

最佳答案

您必须更新 ActionListener 中的时间。您不需要调用 revalidaterepaint,只需调用 setText()append(如果您不这样做)想要删除以前的文本。

final JTextArea textArea = new JTextArea(Long.ToString(System.currentTimeMillis())); 
JButton newButton2 = new JButton("Update time");
newButton2.addActionListener(new ActionListener(){
     @Override
        public void actionPerformed(final ActionEvent e) {    
          textArea.setText(Long.toString(System.currentTimeMillis()));    
        }
});

顺便说一句,遵循java代码约定,变量以小写开头,添加组件后调用setVisible()

关于java - 更新 JFrame 中文本的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20981879/

相关文章:

java - 在不同的 JFrame 中更改数据库后,如何重新加载从数据库加载数据的 JComponent?

java - Ebean 关闭在 Play 测试中被破坏

java - SOAP webservice如何支持ACID属性

java - 在文本区域中打开特定文本文档

java - JTextArea 更新为 DocumentListener

java - 不一致的 Java Swing JFrame 大小

java - 使用 Jsoup 提交登录表单时出现问题

java - 结果集 : do {. ..} while (...);与 while(...) {...}

java - 如何使用 JTree Listener 动态更改带有 CardLayout 的 JPanel?

java - 如何返回到不可见的上一帧