我需要你的帮助,我试着这样做,我想要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 并把它放到那个标签上?
答案 0 :(得分:0)
首先,您需要两者的参考
JComboBox
&amp;第2课中的JLable
个对象。
这样做的简单方法是在MainForm
中声明相应的私人成员,而不是initialize
方法&amp;的本地成员。将它们传递给构造函数或使用setter方法。
让我们考虑参考名称为jComboBox
&amp;分别为jLable
。
现在,您可以使用以下语法通过匿名类的actionPerformed
方法使用此语法Class2.this.jComboBox
&amp; Class2.this.jLable
(jComboBox&amp; jLable是对象引用)。