我想用Swing实现单击按钮后能弹出一个新窗口!!这是我的代码!谢谢!

2024-11-23 23:31:20
推荐回答(2个)
回答1:

// 修改后的代码。里面有几个地方需要注意一下:
// 1 实现接口必须要实现接口的方法
// 2 创建新窗口必须实例化新的JFrame或JDialog对象。
// 详细的请看代码注释吧。

import javax.swing.*;

import java.awt.Rectangle;
import java.awt.event.*;

public class Swing7 extends JFrame implements ActionListener {
JButton jb = new JButton();

public Swing7() {
this.setTitle("Java——");
jb.setText("确定");
jb.setMnemonic('a');
this.add(jb);
this.setBounds(200, 300, 250, 300);
this.setVisible(true);
jb.addActionListener(this); //由于Swing7实现了ActionListener接口,所以给jb添加的ActionListener就是Swing7实例。
}

public void actionPerformed(ActionEvent e) {// 实现ActionListener接口的actionPerformed接口。
JFrame frame = new JFrame("新窗口");//构造一个新的JFrame,作为新窗口。
frame.setBounds(// 让新窗口与Swing7窗口示例错开50像素。
new Rectangle(
(int) this.getBounds().getX() + 50,
(int) this.getBounds().getY() + 50,
(int) this.getBounds().getWidth(),
(int) this.getBounds().getHeight()
)
);
JLabel jl = new JLabel();// 注意类名别写错了。
frame.getContentPane().add(jl);
jl.setText("这是新窗口");
jl.setVerticalAlignment(JLabel.CENTER);
jl.setHorizontalAlignment(JLabel.CENTER);// 注意方法名别写错了。
frame.setVisible(true);
}

public static void main(String args[]) {
Swing7 s = new Swing7();
}
}

回答2:

首先你JLabel拼错了 其次你ActionListener里面不能用this 你这个this指的是谁

最重要的是你为什么要继承 ActionListener接口!