在void方法中修改JLabel

时间:2017-05-30 12:01:18

标签: combobox jlabel

我需要你的帮助,我试着这样做,我想要3-4天,我不能。 我有2个类MainForm和Class2。 我在Class1的方法中有一个JLablel,我想通过按Class2中的按钮来修改它。

public class MainForm {


    private JFrame frame;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    MainForm window = new MainForm();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the application.
     */
    public MainForm() {
        initialize();
    }

    /**
     * Initialize the contents of the frame.
     */
    private void initialize() {
        frame = new JFrame();
        frame.setBounds(400, 200, 488, 322);
        frame.setTitle("ShutDown");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
        frame.setResizable(false);


/**
         * Time BOX
         */
        JComboBox<String> timeBox = new JComboBox<String>();
        timeBox.setBounds(73, 142, 90, 20);
        timeBox.addItem("Days");
        timeBox.addItem("Hours");
        timeBox.addItem("Minutes");
        timeBox.addItem("Seconds");
        timeBox.addItem("Right now");
        timeBox.setSelectedItem("Minutes");
        frame.getContentPane().add(timeBox);


        String getTimeBox = timeBox.getSelectedItem().toString(); 



        /**
         * The label info.
         */
        JLabel labelInfo = new JLabel("");
        labelInfo.setBounds(73, 209, 310, 14);
        frame.getContentPane().add(labelInfo);
        labelInfo.setText(getTimeBox);
}

和2级

Class2

JButton okButton = new JButton("OK");
        okButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {

                    }

我尝试了很多,总是不起作用,我需要在该按钮中编写的代码来从timeBox(comboBox)获取selectedItem 并把它放到那个标签上?

1 个答案:

答案 0 :(得分:0)

首先,您需要两者的参考 JComboBox&amp;第2课中的JLable个对象。
这样做的简单方法是在MainForm中声明相应的私人成员,而不是initialize方法&amp;的本地成员。将它们传递给构造函数或使用setter方法。

让我们考虑参考名称为jComboBox&amp;分别为jLable

现在,您可以使用以下语法通过匿名类的actionPerformed方法使用此语法Class2.this.jComboBox&amp; Class2.this.jLable(jComboBox&amp; jLable是对象引用)。​​