实现窗口有好种方式
一是直接在代码里面创建窗口再进行相应的添加控件
import javax.swing.*;
import java.util.concurrent.*;
public class HelloLabel{
public static void main(String[] args) throws Exception
{
JFrame frame=new JFrame("Hello Swing");
JLabel label=new JLabel("A label");
frame.add(label);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭的事件
frame.setSize(300,100);//设置大小
frame.setVisible(true);//使窗口可视
TimeUnit.SECONDS.sleep(1);//计时器,停顿一秒
label.setText("Hey! This is Different!");
}
}
二、是继承JFrame接口然后在用构造方法进行布局
import javax.swing.*;
import java.util.concurrent.*;
public class SubmitSwingProgram extends JFrame{
JLabel label;
public SubmitSwingProgram(){
super("Hello Swing");
label=new JLabel("A Label");
add(label);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,100);
setVisible(true);
}
static SubmitSwingProgram ssp;
public static void main(String[] args) throws Exception
{
SwingUtilities.invokeLater(new Runnable(){
public void run(){ssp=new SubmitSwingProgram();}
});
TimeUnit.SECONDS.sleep(1);
SwingUtilities.invokeLater(new Runnable(){
public void run(){
ssp.label.setText("Hey! This is Different!");
}
});
}
}
布局方式:
BorderLayout将整个区域划分为一个部分,分别四个边框区域和一个中央区域,直接利用重载add来进行添加
package
import
import
import static
public class BorderLayout1 extends
public
add(BorderLayout.NORTH,new
add(BorderLayout.SOUTH,new
add(BorderLayout.EAST,new
add(BorderLayout.WEST,new
add(BorderLayout.CENTER,new
}
public static void
run(new
}
}
FlowLayout(流动)布局:
这个布局也是很好理解的,当你在添加控件的时候假设你当前的控件的大小超过可容纳的区域大小会自动添加到下一行当中。
package
import
import
import static
public class FlowLayout1 extends
public
setLayout(new
for(int
add(new
}
public static void
run(new
}
}
GridLayotu(表格)布局:
把当前的区域划分为N*M的表格,然后每一个控制占有一个单元格
package
import
import
import
import static
public class GridLayout1 extends
public
setLayout(new
for(int
add(new
}
public static void
run(new
}
}