我在一本资料上,看到这样一句话:向JFrame中添加组件时,必先取得ContentPane,然后再使用add()方法把组件添加到此ContentPane中。
而我写的这个小程序却可以运行。是书上说的有问题,还是怎么了,我有点搞不明白。import javax.swing.*;
import java.awt.*;public class JTrameTest {
public static void main(String[]args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
MyTest frame=new MyTest();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
class MyTest extends JFrame
{
private Button but;
private JLabel lab;
public MyTest()
{
setTitle("MyTest");
setSize(200,200);
but=new Button("确定");
lab=new JLabel("取消");
add(but,BorderLayout.SOUTH);
add(lab,BorderLayout.NORTH);
}
}
而我写的这个小程序却可以运行。是书上说的有问题,还是怎么了,我有点搞不明白。import javax.swing.*;
import java.awt.*;public class JTrameTest {
public static void main(String[]args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
MyTest frame=new MyTest();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
class MyTest extends JFrame
{
private Button but;
private JLabel lab;
public MyTest()
{
setTitle("MyTest");
setSize(200,200);
but=new Button("确定");
lab=new JLabel("取消");
add(but,BorderLayout.SOUTH);
add(lab,BorderLayout.NORTH);
}
}
解决方案 »
- 乱码问题
- Java程序如何自我保护,不被结束,像杀毒软件
- POI包中如何获得EXCEL表格的行和列?
- Integer.ParseInt?的问题
- import javax.servlet.*;怎么通不过,我用的是jbuilder5
- 在jBuilder7内如何配Inprise Application Server?
- 急急急急!!!!!!!!!
- 我在非技术区里面提了这个问题,但是两天了都没有人看,所以来这里提一下.麻烦各位了。
- 黑豹的Java论坛在哪?Java教程在哪?
- 请问:在Java的线程中,是否能声明一个对象数组。利用这个对象引用对象的成员?
- 关于用jxl操作excel表的问题请教
- 起一个线程,之后让它sleep,为什么main线程也跟着不动了?
那下面这个程序,该怎么解释,import java.awt.*;
import javax.swing.*;
public class c1_4 {
public c1_4()
{
JFrame f=new JFrame();
Button button=new Button("dkfd");
JLabel lab=new JLabel("dfdfjljlj");
f.add(button,BorderLayout.NORTH);
f.add(lab,BorderLayout.SOUTH);
f.pack();
f.setSize(300,300);
f.setVisible(true);
}
public static void main(String[]args)
{
new c1_4();
}}
getContentPane() 是为了创建容器,
有点像你看电视领导喝茶吧,喝茶下面还那个盘子,盘子上面才是茶杯子,那个盘子可要可不要。
世界上没有绝对的事情,你多调试下就行,只要编译没有问题,能出结果就是对的!
你可以直接用JFrame f=new JFrame() 再用f.add();
刚才那个类继承了JFrame所以也可以直接用add();
当然你也也可以先得到该窗体的容器 Container t=this.getContentPane();再用t.add();
没看出代码有什么问题