java如何在另一个类中执行某些操作时刷新该类的实例
我有DnyMesice类,它创建了许多JButton实例。每个实例都包含变量poznamkaDne。此类DnyMesice包含actionListener,用于查找推送的JButton的poznamkaDne值。 我有一个Gui类,它创建了上述类DnyMesice的一个实例和JTextArea的一个实例。 如果按下某个JButton(在类DnyMesice中),我如何刷新JTextArea(名称为poznamkovePole)的值
public class DnyMesice extends JPanel {
public String poznamkaDne="first note";
jButton tlacitkoDen;
public void zobrazMesic(Calendar kalendar){
for (c=1; c<30; c++){
tlacitkoDen = new JButton(Integer.toString(denvMesici));
tlacitkoDen.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt) {
poznamkaDne="New note";
};
});
add(tlacitkoDen);
}
}
}
public class Gui extends JFrame {
...
public void zobrazKalendar(){
...
panel3 = new JPanel();
panel3.setLayout(new FlowLayout());
add(panel3);
JTextArea poznamkovePole;
poznamkovePole = new JTextArea();
poznamkovePole.setColumns(30);
poznamkovePole.setRows(5);
poznamkovePole.setText(panel2.poznamkaDne);
panel3.add(poznamkovePole);
}
现在,该程序在JTextArea中只显示“第一个注释”(在创建实例JButton时定义),但在ActionListener操作后是否需要刷新它
# 1 楼答案
修改如下:
这些更改应该允许您更新文本。但是您需要以某种方式调用
poznamekovePole.setText()
,或者实现一个高级侦听器类。我建议你把你的课结合起来,比如上面说的“太强的魔法”# 2 楼答案
如果你能使用:
添加到DnyMesice JTextArea链接,并在ActionListener中更改文本
另外,请不要忘记使用Code Conventions for the Java