在正在运行的应用程序上Swing JLabel文本更改

我有一个Swing窗口,其中包含一个按钮,一个文本框和一个名为flag的JLabel 。 根据我点击按钮后的输入,标签应该从标志变为某个值。

如何在同一个窗口中实现这一点?

 import java.awt.*; import javax.swing.*; import javax.swing.border.*; import java.awt.event.*; public class Test extends JFrame implements ActionListener { private JLabel label; private JTextField field; public Test() { super("The title"); setDefaultCloseOperation(EXIT_ON_CLOSE); setPreferredSize(new Dimension(400, 90)); ((JPanel) getContentPane()).setBorder(new EmptyBorder(13, 13, 13, 13) ); setLayout(new FlowLayout()); JButton btn = new JButton("Change"); btn.setActionCommand("myButton"); btn.addActionListener(this); label = new JLabel("flag"); field = new JTextField(5); add(field); add(btn); add(label); pack(); setLocationRelativeTo(null); setVisible(true); setResizable(false); } public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("myButton")) { label.setText(field.getText()); } } public static void main(String[] args) { new Test(); } } 

使用JLabel setText(str)方法动态更改显示的文本。 在actionPerform中按钮写下:

 jLabel.setText("new Value"); 

一个简单的演示代码将是:

  JFrame frame = new JFrame("Demo"); frame.setLayout(new BorderLayout()); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.setSize(250,100); final JLabel label = new JLabel("flag"); JButton button = new JButton("Change flag"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { label.setText("new value"); } }); frame.add(label, BorderLayout.NORTH); frame.add(button, BorderLayout.CENTER); frame.setVisible(true);