label.setText - 用另一个textarea改变?

时间:2017-02-27 20:06:40

标签: java swing text label

我的代码有些问题。

label1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent ae) {
            label1.setText(-Here i want the button to open up a new "update window, and it will update the label to the text i'll provide in a seperate window);
        }
    });

如果没有额外的表格,有没有办法做到这一点?只是想补充一点,我有几个标签,我不知道如何开始它。

1 个答案:

答案 0 :(得分:2)

一种方法是从更新对话框返回结果,然后您可以使用该对话框更新label1中的文本。这是一个根据JOptionPane

的结果返回更新标签文本的示例
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Test {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame frame = new JFrame();
                frame.setMinimumSize(new Dimension(200, 85));
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new FlowLayout());

                JLabel label = new JLabel("Original Text");
                frame.add(label);

                JButton button = new JButton("Click Me");
                frame.add(button);

                // to demonstrate, a JOptionPane will be used, but this could be replaced with a custom dialog or other control
                button.addActionListener(new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        int result = JOptionPane.showConfirmDialog(frame, "Should I update the label?", "Test", JOptionPane.OK_CANCEL_OPTION );
                        // if the user selected 'Ok' then updated the label text
                        if(result == JOptionPane.OK_OPTION) {
                            label.setText("Updated text");
                        }
                    }
                });
                frame.setVisible(true);

            }
        });
    }
}

另一种方法是使用ObserverObservable来监听更新并相应地更改标签文本。有关观察者的更多信息,请查看以下问题:When should we use Observer and Observable