import javax.swing.*;
import java.awt.*;
public class MyJPanelTest extends JFrame{
JFrame frame;
JPanel panel1;
JPanel panel2;
public MyJPanelTest(){
frame=new JFrame("测试JPanel组件");
panel1=new JPanel();
panel1.setBorder(new TitledBorder("panel1"));
panel1.add(new JButton("panel1"));
panel2=new JPanel();
panel2.add(new JButton("panel2"));
panel2.setBorder(new TitledBorder("panel2"));
Container cp=frame.getContentPane();
cp.setLayout(new FlowLayout());
cp.add(panel1,BorderLayout.WEST);
cp.add(panel2,BorderLayout.CENTER);
frame.setSize(300,200);
frame.show();
}
public static void main(String[] args){
new MyJPanelTest();
}
}
run:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code
at MyJPanelTest.<init>(MyJPanelTest.java:10)
at MyJPanelTest.main(MyJPanelTest.java:23)
Java Result: 1 后来加上import javax.swing.border.*;就编译通过了
我就是不明白了,我前面的import javax.swing.*;不是已经包含了javax.swing.border.*;了吗?为什么还要再写一个详细的才可以不出错呢,两句之间有什么差别呢?
import java.awt.*;
public class MyJPanelTest extends JFrame{
JFrame frame;
JPanel panel1;
JPanel panel2;
public MyJPanelTest(){
frame=new JFrame("测试JPanel组件");
panel1=new JPanel();
panel1.setBorder(new TitledBorder("panel1"));
panel1.add(new JButton("panel1"));
panel2=new JPanel();
panel2.add(new JButton("panel2"));
panel2.setBorder(new TitledBorder("panel2"));
Container cp=frame.getContentPane();
cp.setLayout(new FlowLayout());
cp.add(panel1,BorderLayout.WEST);
cp.add(panel2,BorderLayout.CENTER);
frame.setSize(300,200);
frame.show();
}
public static void main(String[] args){
new MyJPanelTest();
}
}
run:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code
at MyJPanelTest.<init>(MyJPanelTest.java:10)
at MyJPanelTest.main(MyJPanelTest.java:23)
Java Result: 1 后来加上import javax.swing.border.*;就编译通过了
我就是不明白了,我前面的import javax.swing.*;不是已经包含了javax.swing.border.*;了吗?为什么还要再写一个详细的才可以不出错呢,两句之间有什么差别呢?
学习了 平时从不用import package.* 原来还有这么一说
lz还可以这样写:
例如这两句
cp.add(panel1,BorderLayout.WEST);
cp.add(panel2,BorderLayout.CENTER);
可以写出
cp.add(panel1,javax.swing.border.BorderLayout.WEST);
cp.add(panel2,javax.swing.border.BorderLayout.CENTER);
如果import到包下的所有的类的话, JVM会加载所有的类
所以这样消耗内存的