[英]i want to make my actionlistener on a separete class but it doesnt seem to work
我尝试了许多从另一个类添加另一个方法的实现,以便使其工作,但我仍然无法做到。 所以我的主要内容很简单:
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};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.