我尝试了许多从另一个类添加另一个方法的实现方式,以便使其正常工作,但是我仍然无法做到这一点。所以我的主要方法很简单:
public class Main {
public static void main(String[] args) {
new frame();
}}
问题出在我的框架类上,当我将动作监听器放在我的框架方法上时,它可以正常工作,但是当我将其放在另一个类上时,在这种情况下,我的动作类在任何情况下都无法正常工作意味着...
public class frame{
buttons b = new buttons();
public JFrame f1 = new JFrame("logging in...");
public JPanel p = new JPanel();
public frame() {
frames();
new actions(); }
public void frames(){
p.setLayout(null);
p.setBackground(Color.yellow);
b.b1.setIcon(new ImageIcon("C:\\Users\\User\\Pictures\\heroes-icons-large.jpg"));
b.img.setIcon(new ImageIcon("C:\\Users\\User\\Pictures\\lock screen.jpg"));
p.add(b.lab);
p.add(b.lab3);
p.add(b.lab2);
p.add(b.b1);
p.add(b.t1);
p.add(b.t2);
p.add(b.img);
f1.pack();
f1.setSize(340,300);
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.setLocationRelativeTo(null);
f1.add(p);
f1.setVisible(true); }}
当然我在另一个类上做了按钮标签等,我认为我不需要在这里编写它,所以这是我的动作类,似乎有问题:
public class actions {
buttons b = new buttons();
public actions(){
a1(); }
public void a1(){
b.b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
b.lab.setText("it works!");
}});}}
请帮助我,我有点新,所以可能有些事我不知道/我可能会丢失,但是请相信我,我尝试了很多。谢谢您的时间。
您为什么需要动作班?您无需覆盖actionListener。您是否为主类实现了ActionListener?
@Override
public void actionPerformed(ActionEvent e){ // your code};