本文共 4915 字,大约阅读时间需要 16 分钟。
public static void main(String[] args) { //Frame Frame frame= new Frame("我的第一个窗口界面"); //需要设置可见性 frame.setVisible(true); //设置窗口的大小 frame.setSize(400,400); //设置窗口的颜色color frame.setBackground(new Color(63, 121, 48)); //弹出的初始位置 frame.setLocation(200,200); //设置大小固定 frame.setResizable(true);}问题:发现程序不能关掉,停止java程序的运行
尝试回顾封装
public class testFrame { public static void main(String[] args) { Myframe myframe1=new Myframe(100,100,200,200,Color.blue); Myframe myframe2=new Myframe(300,100,200,200,Color.yellow); Myframe myframe3=new Myframe(100,300,200,200,Color.pink); Myframe myframe4=new Myframe(300,300,200,200,Color.gray); }}//继承封装class Myframe extends Frame{ static int id=0; public Myframe(int x,int y,int w,int h,Color color){ super("Myframe"+(++id)); setBackground(color); setBounds(x,y,w,h); setVisible(true); }}
解决了关闭事件
public static void main(String[] args) { Frame frame=new Frame(); Panel panel=new Panel(); //设置布局 frame.setLayout(null); frame.setBounds(300,300,500,500); frame.setBackground(new Color(41, 122, 41)); //panel设置坐标,相对于frame panel.setBounds(50,50,400,400); panel.setBackground(new Color(122, 123, 165)); //frame.add(panel) frame.add(panel); frame.setVisible(true); //设置监听事件 System.exit(0) //适配器模式 frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); }
流式布局
public static void main(String[] args) { Frame frame=new Frame(); Button button1=new Button("button1"); Button button2=new Button("button2"); Button button3=new Button("button3"); //设置为流式布局 //frame.setLayout(new FlowLayout()); frame.setLayout(new FlowLayout(FlowLayout.LEFT)); frame.setSize(200,200); frame.add(button1); frame.add(button2); frame.add(button3); frame.setVisible(true); }
东西南北中布局
public static void main(String[] args) { Frame frame=new Frame("TestBorderLayout"); Button east=new Button("East"); Button west=new Button("West"); Button south=new Button("South"); Button north=new Button("North"); Button center=new Button("Center"); frame.add(east,BorderLayout.EAST); frame.add(west,BorderLayout.WEST); frame.add(south,BorderLayout.SOUTH); frame.add(north,BorderLayout.NORTH); frame.add(center,BorderLayout.CENTER); frame.setSize(200,200); frame.setVisible(true); }
表格布局Grid
public static void main(String[] args) { Frame frame=new Frame("TestBorderLayout"); Button bnt1=new Button("bnt1"); Button bnt2=new Button("bnt2"); Button bnt3=new Button("bnt3"); Button bnt4=new Button("bnt4"); Button bnt5=new Button("bnt5"); Button bnt6=new Button("bnt6"); frame.setLayout(new GridLayout(3,2)); frame.add(bnt1); frame.add(bnt2); frame.add(bnt3); frame.add(bnt4); frame.add(bnt5); frame.add(bnt6); frame.pack();//java函数,选择最优的方式去布局 frame.setVisible(true); }
小练习
public static void main(String[] args) { //总 Frame frame=new Frame(); frame.setSize(400,300); frame.setLocation(300,400); frame.setBackground(Color.gray); frame.setVisible(true); frame.setLayout(new GridLayout(2,1)); //分,4个面板 Panel p1=new Panel(new BorderLayout()); Panel p2=new Panel(new GridLayout(2,1)); Panel p3=new Panel(new BorderLayout()); Panel p4=new Panel(new GridLayout(2,2)); //上面ok p1.add(new Button("east-1"),BorderLayout.EAST); p1.add(new Button("west-1"),BorderLayout.WEST); p2.add(new Button("p2-btn1")); p2.add(new Button("p2-btn2")); p1.add(p2,BorderLayout.CENTER); //下面 p3.add(new Button("east-2"),BorderLayout.EAST); p3.add(new Button("west-2"),BorderLayout.WEST); p4.add(new Button("p4-btn1")); p4.add(new Button("p4-btn2")); p4.add(new Button("p4-btn3")); p4.add(new Button("p4-btn4")); p3.add(p4,BorderLayout.CENTER); frame.add(p1); frame.add(p3); frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(); } }); }
转载地址:http://jtgji.baihongyu.com/