0.Calculater
package com.yfs.javase; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.Panel; import java.awt.TextField; //布局管理器 public class Calculater extends Frame { //设置2个panel Panel pn = new Panel(); Panel pc = new Panel(); Button[] buts = new Button[16]; TextField text = new TextField(20); //菜单 MenuBar bar = new MenuBar(); Menu m1 = new Menu("编辑"); Menu m2 = new Menu("查看"); Menu m3 = new Menu("帮助"); public Calculater() { super("山寨计算器"); setLocation(200, 150); //布局管理 GridLayout 表格 pc.setLayout(new GridLayout(4,4,5,5)); //添加到north面板 pn.add(text); //添加but for (int i = 0; i < 10; i++) { buts[i] = new Button(String.valueOf(i)); pc.add(buts[i]); } //运算符 String[] opt = {"+","-","*","/","="}; for (int i = 10; i < opt.length + 10; i++) { buts[i] = new Button(opt[i - 10]); pc.add(buts[i]); } //向窗体添加面板 add(pn, BorderLayout.NORTH); add(pc); pack();//窗体包裹组件 setResizable(false); //添加菜单项 MenuItem m11 = new MenuItem("复制"); MenuItem m12 = new MenuItem("粘贴"); MenuItem m21 = new MenuItem("标准型"); MenuItem m22 = new MenuItem("科学型"); MenuItem m23 = new MenuItem("数字分组"); MenuItem m31 = new MenuItem("帮助主题"); MenuItem m32 = new MenuItem("关于计算器"); m1.add(m11); m1.add(m12); m2.add(m21); m2.add(m22); m2.addSeparator(); m2.add(m23); m3.add(m31); m3.add(m32); //设置菜单 bar.add(m1); bar.add(m2); bar.add(m3); //菜单添加到窗体 setMenuBar(bar); // 默认隐藏 设置显示 setVisible(true); } public static void main(String[] args) { new Calculater(); } }
1.Frame
package com.yfs.javase; import java.awt.Button; import java.awt.Checkbox; import java.awt.Choice; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Label; import java.awt.TextArea; import java.awt.TextField; public class FrameDemo1 { /** * awt */ public static void main(String[] args) { //创建窗体对象 Frame frame = new Frame(); //设置位置 frame.setLocation(200, 150); //设置窗体大小 frame.setSize(400, 300); //设置布局 frame.setLayout(new FlowLayout()); //按钮 Button but = new Button(); but.setLabel("新建"); Label la = new Label(); la.setText("软件开发"); Checkbox ch = new Checkbox();//单选框 TextArea area = new TextArea(6,20);//多行文本框 TextField text = new TextField(15);//单行文本框 Choice choice = new Choice(); choice.add("clazz1"); choice.add("clazz2"); choice.add("clazz3"); //添加窗体 frame.add(but); frame.add(la); frame.add(ch); frame.add(area); frame.add(text); frame.add(choice); //默认隐藏 设置显示 frame.setVisible(true); } }
2.JFrame
package com.yfs.javase; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextArea; import javax.swing.JTextField; public class FrameDemo2 { /** * swing */ public static void main(String[] args) { //创建窗体对象 JFrame frame = new JFrame(); //设置位置 frame.setLocation(200, 150); //设置窗体大小 frame.setSize(400, 300); frame.setLayout(new FlowLayout()); JButton but = new JButton(); but.setText("新建"); JLabel la = new JLabel("软件"); JCheckBox ch = new JCheckBox(); JTextArea area = new JTextArea(8,20); JTextField text = new JTextField(15); JComboBox box = new JComboBox(); box.addItem("clazz1"); box.addItem("clazz2"); box.addItem("clazz3"); frame.add(but); frame.add(la); frame.add(ch); frame.add(area); frame.add(text); frame.add(box); //默认隐藏 设置显示 frame.setVisible(true); } }
3.自己管理窗体布局
package com.yfs.javase; import java.awt.Button; import java.awt.Checkbox; import java.awt.Choice; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Label; import java.awt.TextArea; import java.awt.TextField; public class FrameDemo3 extends Frame { public FrameDemo3() { //调用父类无参数的构造方法 //super("我的程序"); setTitle("还是我的程序"); // 创建窗体对象 //Frame frame = new Frame(); // 设置位置 this.setLocation(200, 150); // 设置窗体大小 setSize(400, 300); // 按钮 Button but1 = new Button("新建"); Button but2 = new Button("打开"); Button but3 = new Button("保存"); Button but4 = new Button("退出"); setLayout(null); //自己管理窗体布局 //指定大小 位置 but1.setLocation(10, 50); but1.setSize(50, 30); but2.setLocation(70, 50); but2.setSize(50, 30); but3.setLocation(130, 50); but3.setSize(50, 30); but4.setLocation(190, 50); but4.setSize(50, 30); // 添加到窗体 add(but1); add(but2); add(but3); add(but4); // 默认隐藏 设置显示 setVisible(true); } public static void main(String[] args) { new FrameDemo3(); } }
4.布局管理器
package com.yfs.javase; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Checkbox; import java.awt.Choice; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Label; import java.awt.TextArea; import java.awt.TextField; //布局管理器 public class FrameDemo4 extends Frame { public FrameDemo4() { super("borderlayout管理器"); setBounds(200, 150, 500, 400); Button b1 = new Button("北"); Button b2 = new Button("南"); Button b3 = new Button("西"); Button b4 = new Button("东"); Button b5 = new Button("中"); Button b6 = new Button("发"); //布局管理 frame默认 BorderLayout布局管理器 //setLayout( new BorderLayout()); add(b1, BorderLayout.NORTH); add(b2, BorderLayout.SOUTH); add(b3, BorderLayout.WEST); add(b4, BorderLayout.EAST); //add(b5,BorderLayout.CENTER); add(b5); add(b6); // 默认隐藏 设置显示 setVisible(true); } public static void main(String[] args) { new FrameDemo4(); } }
5.FlowLayout
package com.yfs.javase; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Checkbox; import java.awt.Choice; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Label; import java.awt.TextArea; import java.awt.TextField; //布局管理器 public class FrameDemo5 extends Frame { public FrameDemo5() { super("Flowlayout管理器"); setBounds(200, 150, 500, 400); Button b1 = new Button("新建"); Button b2 = new Button("打开"); Button b3 = new Button("保存"); Button b4 = new Button("关闭"); //布局管理 FlowLayout setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 20)); add(b1); add(b2); add(b3); add(b4); // 默认隐藏 设置显示 setVisible(true); } public static void main(String[] args) { new FrameDemo5(); } }
6.GridLayout 表格
package com.yfs.javase; import java.awt.Color; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Label; import java.util.Random; //布局管理器 public class FrameDemo6 extends Frame { //属性 private Label[] labels = new Label[16]; public FrameDemo6() { super("gridlayout管理器"); setBounds(200, 150, 400, 400); Random ran = new Random(); //布局管理 GridLayout 表格 setLayout(new GridLayout(4,4,1,1)); //创建label for (int i = 0; i < labels.length; i++) { labels[i] = new Label(String.valueOf(i + 1), Label.CENTER); //添加背景色 //labels[i].setBackground(Color.CYAN); labels[i].setBackground(new Color(ran.nextInt(256),ran.nextInt(256),ran.nextInt(256))); //设置前景色 labels[i].setForeground(Color.WHITE); //添加到窗体 add(labels[i]); } // 默认隐藏 设置显示 setVisible(true); } public static void main(String[] args) { new FrameDemo6(); } }
7.容器Panel
package com.yfs.javase; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Checkbox; import java.awt.Choice; import java.awt.Color; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Label; import java.awt.Panel; import java.awt.TextArea; import java.awt.TextField; import java.awt.Window; //容器 public class FrameDemo7 { // public FrameDemo7() { // // super("Flowlayout管理器"); // setBounds(200, 150, 500, 400); // Button b1 = new Button("新建"); // Button b2 = new Button("打开"); // Button b3 = new Button("保存"); // Button b4 = new Button("关闭"); // // //布局管理 FlowLayout // //setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 20)); // // add(b1); // add(b2); // add(b3); // add(b4); // // // 默认隐藏 设置显示 // setVisible(true); // // } public static void main(String[] args) { Frame f = new Frame("容器实例"); f.setBounds(200, 150, 300, 300); f.setVisible(true); // 不能独立显示 管理组件 Panel p = new Panel(); p.setBounds(200, 150, 100, 100); p.setBackground(Color.CYAN); p.setVisible(true); p.add(new Button("javase")); f.add(p, BorderLayout.EAST); // Window win = new Window(null); // win.setBounds(200, 150, 300, 300); // Button but = new Button("软件开发"); // win.add(but); // win.setVisible(true); } }