import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class bu extends JFrame implements ActionListener
{
private JFrame jf;
private JButton jb1;
private JButton jb2;
bu()
{
jf=new JFrame();
jb1=new JButton("jb1");
jb2=new JButton("jb2");
jf.setLayout(new FlowLayout());
jf.setLocation(512,384);
jf.setBounds(10,10,200,400);
jb1.addActionListener(this);
jb2.addActionListener(this);
add(jb1);
add(jb2);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
JButton temp;
temp=(JButton)e.getSource();
if(temp==jb1) System.out.println("jb1");
if(temp==jb2) System.out.println("jb2");
}
public static void main(String args[])
{
new bu();
}
}
import java.awt.event.*;
import javax.swing.*;public class bu extends JFrame implements ActionListener
{
private JFrame jf;
private JButton jb1;
private JButton jb2;
bu()
{
jf=new JFrame();
jb1=new JButton("jb1");
jb2=new JButton("jb2");
jf.setLayout(new FlowLayout());
jf.setLocation(512,384);
jf.setBounds(10,10,200,400);
jb1.addActionListener(this);
jb2.addActionListener(this);
add(jb1);
add(jb2);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
JButton temp;
temp=(JButton)e.getSource();
if(temp==jb1) System.out.println("jb1");
if(temp==jb2) System.out.println("jb2");
}
public static void main(String args[])
{
new bu();
}
}
楼主【sure2003】截止到2008-07-28 14:58:42的历史汇总数据(不包括此帖):
发帖的总数量:277 发帖的总分数:11293 每贴平均分数:40
回帖的总数量:241 得分贴总数量:10 回帖的得分率:4%
结贴的总数量:275 结贴的总分数:11233
无满意结贴数:2 无满意结贴分:50
未结的帖子数:2 未结的总分数:60
结贴的百分比:99.28 % 结分的百分比:99.47 %
无满意结贴率:0.73 % 无满意结分率:0.45 %
值得尊敬
为什么还要在构造方法中new JFrame()?
class bu 。。
import java.awt.event.*;
import javax.swing.*;public class bu extends JFrame implements ActionListener
{
private JFrame jf;
private JButton jb1;
private JButton jb2;
bu()
{
jf=new JFrame();
jb1=new JButton("jb1");
jb2=new JButton("jb2");
jf.getContentPane().setLayout(new FlowLayout());
jf.setLocation(512,384);
jf.setBounds(10,10,200,400);
jb1.addActionListener(this);
jb2.addActionListener(this);
jf.getContentPane().add(jb1);
jf.getContentPane().add(jb2);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
JButton temp;
temp=(JButton)e.getSource();
if(temp==jb1) System.out.println("jb1");
if(temp==jb2) System.out.println("jb2");
}
public static void main(String args[])
{
new bu();
}
}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;public class Main { public static void main(String[] args) {
new Bu();
}
}class Bu extends JFrame implements ActionListener { private JButton jb1;
private JButton jb2; public Bu() {
jb1 = new JButton("jb1");
jb2 = new JButton("jb2");
setLayout(new FlowLayout());
setLocation(512, 384);
setBounds(10, 10, 200, 400); jb1.addActionListener(this);
jb2.addActionListener(this);
add(jb1);
add(jb2);
setVisible(true);
} public void actionPerformed(ActionEvent e) {
JButton temp;
temp = (JButton) e.getSource();
if (temp == jb1) {
System.out.println("jb1");
}
if (temp == jb2) {
System.out.println("jb2");
}
}
}
jf.getContentPane().add(jb1);
jf.getContentPane().add(jb2);
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class bu extends JFrame implements ActionListener
{
private JFrame jf;
private JButton jb1;
private JButton jb2;
bu()
{
jf=new JFrame();
jb1=new JButton("jb1");
jb2=new JButton("jb2");
setLayout(new FlowLayout()); //去掉jf.
setLocation(512,384); //去掉jf.
setBounds(10,10,200,400); //去掉jf. ???为什么不去掉就无法正确显示呢???
jb1.addActionListener(this);
jb2.addActionListener(this);
add(jb1);
add(jb2);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
JButton temp;
temp=(JButton)e.getSource();
if(temp==jb1) System.out.println("jb1");
if(temp==jb2) System.out.println("jb2");
}
public static void main(String args[])
{
new bu();
}
}
我在jdk1.4,运行还是错误。
当没有jf的时候,组件添加到了bu中,调用setVisible后,显示窗体。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;class MyFrame extends JFrame implements ActionListener { private JFrame jf;
private JButton jb1;
private JButton jb2; MyFrame() {
jf = new JFrame();
jf.setVisible(true);
jf.setSize(100,200);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setBounds(100, 100, 200, 200);
jb1 = new JButton("jb1");
jb2 = new JButton("jb2");
setLayout(new FlowLayout());
jb1.addActionListener(this);
jb2.addActionListener(this);
add(jb1);
add(jb2);
pack();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} public void actionPerformed(ActionEvent e) {
JButton temp;
temp = (JButton) e.getSource();
if (temp == jb1) {
System.out.println("jb1");
}
if (temp == jb2) {
System.out.println("jb2");
}
} public static void main(String args[]) {
new MyFrame();
}
}
因为当创建Bu的对象时,会执行初始化,你在这里没设置Bu对象的必要属性,只设置了jf的必要属性,
所以Bu的对象无法显示出来。
super("你想要的标题名");
再去掉那些jf引用就可以了。最好还要定义一下初始界面的大小, setSize(300, 200);