【问题标题】:Swing JLabel text change on the running application正在运行的应用程序上的 Swing JLabel 文本更改
【发布时间】:2011-07-05 05:19:41
【问题描述】:

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

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

【问题讨论】:

    标签: java swing jlabel


    【解决方案1】:

    使用JLabelsetText(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);
    

    【讨论】:

      【解决方案2】:
      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();
          }
      }
      

      【讨论】:

      • 你可以从另一个类中创建Test 的对象为Test t = new Test(); t.getLabel().setText("Change label text");。我已经为标签 (getLabel()) 创建了 getters-setter ??
      猜你喜欢
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多