package javagui.ui; import java.awt.Color; import java.awt.Image; import javax.swing.ImageIcon; public class GUIMain { public static void main(String[] args) { /*Window1 win1=new Window1(); win1.setSize(400, 300); win1.Init(); win1.setIconImage(null); String path= ClassLoader.getSystemResource("res/icon.png").getPath(); Image img=null; ImageIcon ic=new ImageIcon(path); img= ic.getImage(); win1.setIconImage(img); //win1.getContentPane().setBackground(Color.red); //win1.setBackground(Color.red); win1.Show(); */ Window3 win3=new Window3(); win3.Init(); win3.setSize(400, 300); win3.Show(); } }
package javagui.ui; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.LayoutManager; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; /** * 流式布局 * 组件在容器中按加入顺序逐行定位,行内从左到右,一行满后换行,默认对齐方式为居中对齐 * @author dream * */ public class Window1 extends JFrame implements WindowListener,MouseListener { private JLabel label; private JButton button1; private JButton button2; private JButton button3; public void Init(){ //按钮 button1=new JButton(); button1.setText("按钮1"); button1.setSize(100, 50); //按钮 button2=new JButton(); button2.setText("按钮2"); //按钮 button3=new JButton(); button3.setText("按钮3"); this.getContentPane().setLayout(new FlowLayout()); //添加组件 this.getContentPane().add(button1); this.getContentPane().add(button2); JPanel jpanel=new JPanel(new FlowLayout(FlowLayout.LEFT,10,10)); jpanel.setBackground(Color.red); this.getContentPane().add(jpanel); jpanel.setPreferredSize(new Dimension(200, 100)); jpanel.add(button3); this.addWindowListener(this); this.setResizable(true); } public void Show(){ this.setVisible(true); } /** * 窗体激活时执行 */ public void windowActivated(WindowEvent arg0) { System.out.println("windowActivated"); } /** * 窗体已关闭时执行 */ public void windowClosed(WindowEvent arg0) { System.out.println("windowClosed"); } /** * 窗体关闭前执行 */ public void windowClosing(WindowEvent arg0) { System.out.println("windowClosing"); this.dispose(); System.exit(0); } /** * 窗体由激活转为未激活时执行(也就是不是当前焦点窗口) */ public void windowDeactivated(WindowEvent arg0) { System.out.println("windowDeactivated"); } public void windowDeiconified(WindowEvent arg0) { System.out.println("windowDeiconified"); } public void windowIconified(WindowEvent arg0) { System.out.println("windowIconified"); } /** * 窗体显示前执行 */ public void windowOpened(WindowEvent arg0) { System.out.println("windowOpened"); } public void mouseClicked(MouseEvent arg0) { // TODO Auto-generated method stub } public void mouseEntered(MouseEvent arg0) { System.out.println("mouseEntered"); } public void mouseExited(MouseEvent arg0) { System.out.println("mouseExited"); } public void mousePressed(MouseEvent arg0) { // TODO Auto-generated method stub } public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub } }
package javagui.ui; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Panel; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; /** * 边界布局 * 是Window及子类(Frame,Dialog)的默认布局管理器。 组件布局效果:将整个容器分为:东,西,南,北,中(East,West,South,North,Center)五部分, 组件只能被添加到指定的区域,默认加的Center区域,每个区域只能加入一个组件。东,西为垂直缩放,南,北为水平缩放。 * @author dream * */ public class Window2 extends JFrame { private JButton btn1; private JButton btn2; private JButton btn3; private JButton btn4; private JButton btn5; private JPanel panel; private JLabel label; public void Init(){ Container jpanel=this.getContentPane(); btn1=new JButton(); btn1.setPreferredSize(new Dimension(100, 50)); btn1.setText("Button1"); jpanel.add(btn1,BorderLayout.NORTH); btn2=new JButton(); btn2.setText("Button2"); jpanel.add(btn2,BorderLayout.SOUTH); btn3=new JButton(); btn3.setText("Button3"); jpanel.add(btn3,BorderLayout.WEST); btn4=new JButton(); btn4.setText("Button4"); jpanel.add(btn4,BorderLayout.EAST); btn5=new JButton(); btn5.setText("Button5"); btn5.setSize(100,50); panel=new JPanel(); panel.setBackground(Color.green); panel.add(btn5); label=new JLabel(); label.setText("边界布局中嵌套Panel流式布局"); panel.add(label); panel.setLayout(new FlowLayout(FlowLayout.LEFT)); panel.setPreferredSize(new Dimension(200, 100)); jpanel.add(panel,BorderLayout.EAST); } public void Show(){ this.setVisible(true); } }
package javagui.ui; import java.awt.Container; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; /** * 网格布局GridLayout * 布局效果:将容器划分为规则的矩形网格,每个单元格大小相等. Public GridLayout();默认设置,所有组件在同一行中,各占一列. Public GridLayout(int rows,int cols): 指定行数和列数. Public GridLayout(int rows,int cols, int h,int v):指定行数,列数和垂直,水平间距. * @author dream * */ public class Window3 extends JFrame { private JButton btn1; private JButton btn2; private JButton btn3; private JButton btn4; public void Init(){ Container c=this.getContentPane(); c.setLayout(new GridLayout(2, 2)); btn1=new JButton(); btn1.setText("Button1"); c.add(btn1); btn2=new JButton(); btn2.setText("Button2"); c.add(btn2); btn3=new JButton(); btn3.setText("Button3"); c.add(btn3); btn4=new JButton(); btn4.setText("Button4"); c.add(btn4); } public void Show(){ this.setVisible(true); } }