GUI 编程【一】
——创建框架,使框架在任意位置,添加组件,布局管理器(FlowLayout)
javaGUI使用的类的结构图:
创建框架:
package javaCUI1; import javax.swing.JFrame; public class gui1 { public static void main(String[] args) { JFrame frame=new JFrame("test");//名称 frame.setSize(400,300);//宽高像素 frame.setVisible(true);//显示 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口,若无此句windows按Ctrl+C关闭。 } }效果图:
框架任意位置显示及居中:
package javaCUI1; import java.awt.Dimension; import java.awt.Toolkit; import javax.swing.JFrame; public class gui1 { public static void main(String[] args) { JFrame frame=new JFrame("test");//名称 frame.setSize(400,300);//宽高像素 //获取屏幕宽高 Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize(); int screenWidth=screenSize.width; int screenHeight=screenSize.height; //获取框架宽高 Dimension frameSize=frame.getSize(); //设定显示位置 int x=(screenWidth-frameSize.width)/2; int y=(screenHeight-frameSize.height)/2; frame.setLocation(x, y); frame.setVisible(true);//显示 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口,若无此句windows按Ctrl+C关闭。 } } 添加组件: package javaCUI1; import java.awt.Container; import javax.swing.JButton; import javax.swing.JFrame; public class gui1 { public static void main(String[] args) { JFrame frame=new JFrame("test");//名称 frame.setSize(400,300);//宽高像素 Container container=frame.getContentPane(); //返回框架的内容面板 container.add(new JButton("OK")); //在返回的内容面板中添加组件 //一句话写法:frame.getContentPane().add(new JButton("OK"); frame.setVisible(true);//显示 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口,若无此句windows按Ctrl+C关闭。 } } 效果显示布局管理器:
五个基本布局管理器:FlowerLayout,GridLayout,BorderLayout,CardLayout,GridBagLayout。
基本语法:
container.setLayout(new SpecificLayout());
JButton jbtOK=new JButton("OK");
container.remove(jbtOK);
FlowLayout:
public FlowerLayout(int align,int hGap,int vGao) 指定排列,水平间距,垂直间距
package javaCUI1; import java.awt.Container; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; public class ShowFlowLayout extends JFrame{ //扩展了类JFrame,直接使用JFrame中相关属性。 public ShowFlowLayout() { Container container=getContentPane(); //定义容器 container.setLayout(new FlowLayout(FlowLayout.LEFT,10,20)); //等价于: //FlowLayout layout=new FlowLayout(FlowLayout.LEFT,10,20); //container.setLayout(layout); //布局方式 for(int i=1;i<=10;i++) { container.add(new JButton("Component"+i)); } } public static void main(String[] args) { ShowFlowLayout frame=new ShowFlowLayout(); frame.setTitle("show FlowLayout"); frame.setSize(200,200); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } 效果图:
