首先,也许我的标题是错的,任何正文都请纠正我的确切问题。 如果你的错误,我的英语很抱歉。 这是我的MainFram类:
public class MainFrame extends JFrame{
public static JTextField checksum;
public MainFrame(){
createComponents();
actionEvent();
}
private void createComponents(){
....
}
private void actionEvent(){
ActionListener al = new ActionListener(){
@Override
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == btnExem){
actionEvent.btnPerformed(ae);
}
else if (ae.getSource() == jfBrowser){
.........
}
}
}
copyBtn.addActionListener(al);
public static void main(String[] args){
MainFrame f = new MainFrame();
f.setVisible(true);
f.setResizable(false);
}
actionEvent类:
public class actionEvent extends MainFrame{
//example
public static void btnPerformed(ActionEvent ae){
checksum.setText("");
}
我想在MainFrame类中为checksum属性设置private,我在MainFrame类中编写了一个方法setChecksumText:
public void setChecksumText(String t){
this.checksum.setText(t);
}
但是IDE显示btnPerformed必须是静态的,所以我不能使用非静态的setChecksumText方法。 我该如何解决?
答案 0 :(得分:0)
您需要将static
添加到setChecksumText()
。请注意,校验和为static
,它只存在一次,而不是每个对象一次,这意味着我们不能使用this
访问它,而是使用类名称(如果变量位于类中,则可以省略该类)同班):
private static JTextField checksum;
public static void setChecksumText(String t) {
checksum.setText(t); // or: MainFrame.checksum.setText(t);
}