【JavaGUI】
GUI的概念
● GUI(Graphical User Interface)即图形用户界面,是指采用图形方
式显示的用户界面,与早期计算机使用的命令行界面相比,图形界面对
于用户来说在视觉上更易于接受
常用容器和布局管理器
import javax.swing.*;
import java.awt.*;public class LoginFrame extends JFrame {public LoginFrame(){//在构造方法中对创建的窗口特征进行设置this.setSize(300,300);//设置窗口大小this.setTitle("欢迎登录");//设置标题//this.setLocation(500,200);//设置窗口位置this.setLocationRelativeTo(null);//设置窗日水平要直居中this.setResizable(false);//设置简门不可以调整大小this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关阿窗口选项 EXIT_ON_CLOSE-关闭窗口时,程序退出运行/*创建面板面板可以设置布局管理器流式布局组件在面板上从左到右排列,一行占满重新换行*//*JPanel jPanel = new JPanel();jPanel.setBackground(new Color(100, 24, 33, 72));//创建一个功能组件 按钮组件JButton jButton = new JButton("点击查看八嘎思密达滴干活");//把按钮添加到面板上jPanel.add(jButton);*//*JPanel jPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));JButton jButton1 = new JButton("按钮1");JButton jButton2 = new JButton("按钮2");JButton jButton3 = new JButton("按钮3");JButton jButton4 = new JButton("按钮4");jPanel.add(jButton1);jPanel.add(jButton2);jPanel.add(jButton3);jPanel.add(jButton4);*///边界布局/*JPanel jPanel = new JPanel(new BorderLayout());JButton jButton1 = new JButton("按钮1");JButton jButton2 = new JButton("按钮2");JButton jButton3 = new JButton("按钮3");JButton jButton4 = new JButton("按钮4");jPanel.add(jButton1,BorderLayout.CENTER);jPanel.add(jButton2,BorderLayout.SOUTH);jPanel.add(jButton3,BorderLayout.WEST);jPanel.add(jButton4,BorderLayout.NORTH);*///网格布局JPanel jPanel = new JPanel(new GridLayout(4,1));JButton jButton1 = new JButton("按钮1");JButton jButton2 = new JButton("按钮2");JButton jButton3 = new JButton("按钮3");JButton jButton4 = new JButton("按钮4");jPanel.add(jButton1);jPanel.add(jButton2);jPanel.add(jButton3);jPanel.add(jButton4);//把面板添加到窗口上this.add(jPanel);this.setVisible(true);//让窗口显示出来,放在设置的最后一行}public static void main(String[] args){new LoginFrame();//创述一个窗日}
}
常用组件
import javax.swing.*;
import java.awt.*;public class LoginFrame_back1 extends JFrame {public LoginFrame_back1(){//在构造方法中对创建的窗口特征进行设置this.setSize(300,300);//设置窗口大小this.setTitle("欢迎登录");//设置标题//this.setLocation(500,200);//设置窗口位置this.setLocationRelativeTo(null);//设置窗日水平要直居中this.setResizable(false);//设置简门不可以调整大小this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关阿窗口选项 EXIT_ON_CLOSE-关闭窗口时,程序退出运行/*创建面板面板可以设置布局管理器流式布局组件在面板上从左到右排列,一行占满重新换行*//*JPanel jPanel = new JPanel();jPanel.setBackground(new Color(100, 24, 33, 72));//创建一个功能组件 按钮组件JButton jButton = new JButton("点击查看八嘎思密达滴干活");//把按钮添加到面板上jPanel.add(jButton);*//*JPanel jPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));JButton jButton1 = new JButton("按钮1");JButton jButton2 = new JButton("按钮2");JButton jButton3 = new JButton("按钮3");JButton jButton4 = new JButton("按钮4");jPanel.add(jButton1);jPanel.add(jButton2);jPanel.add(jButton3);jPanel.add(jButton4);*///边界布局/*JPanel jPanel = new JPanel(new BorderLayout());JButton jButton1 = new JButton("按钮1");JButton jButton2 = new JButton("按钮2");JButton jButton3 = new JButton("按钮3");JButton jButton4 = new JButton("按钮4");jPanel.add(jButton1,BorderLayout.CENTER);jPanel.add(jButton2,BorderLayout.SOUTH);jPanel.add(jButton3,BorderLayout.WEST);jPanel.add(jButton4,BorderLayout.NORTH);*///网格布局JPanel jPanel = new JPanel(new FlowLayout());//标签组件,可以放文字JLabel label = new JLabel("账号");label.setFont(new Font("楷体", Font.BOLD,20));//设置字体//创建输入框组件JTextField jTextField = new JTextField(15);jTextField.getText();//获得输入框内容JLabel label1 = new JLabel("密码");//创建密码框JPasswordField jPasswordField = new JPasswordField(15);String password = new String(jPasswordField.getPassword());//获取密码jPanel.add(label);jPanel.add(jTextField);jPanel.add(label1);jPanel.add(jPasswordField);//把面板添加到窗口上this.add(jPanel);this.setVisible(true);//让窗口显示出来,放在设置的最后一行}public static void main(String[] args){new LoginFrame_back1();//创述一个窗日}
}
import javax.swing.*;
import java.awt.*;public class LoginFrame_back1 extends JFrame {public LoginFrame_back1(){//在构造方法中对创建的窗口特征进行设置this.setSize(300,300);//设置窗口大小this.setTitle("欢迎登录");//设置标题//this.setLocation(500,200);//设置窗口位置this.setLocationRelativeTo(null);//设置窗日水平要直居中this.setResizable(false);//设置简门不可以调整大小this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关阿窗口选项 EXIT_ON_CLOSE-关闭窗口时,程序退出运行//创建菜单栏JMenuBar jMenuBar = new JMenuBar();//创建菜单JMenu jMenu1 = new JMenu("文件");JMenu jMenu2 = new JMenu("编辑");JMenu jMenu3 = new JMenu("帮助");//创建菜单选项JMenuItem jMenuItem1 = new JMenuItem("新建");JMenuItem jMenuItem2 = new JMenuItem("保存");JMenuItem jMenuItem3 = new JMenuItem("关于我们");jMenu1.add(jMenuItem1);jMenu1.add(jMenuItem2);jMenu3.add(jMenuItem3);jMenuBar.add(jMenu1);jMenuBar.add(jMenu2);jMenuBar.add(jMenu3);this.setJMenuBar(jMenuBar);//把菜单栏添加到窗口上/*创建面板面板可以设置布局管理器流式布局组件在面板上从左到右排列,一行占满重新换行*//*JPanel jPanel = new JPanel();jPanel.setBackground(new Color(100, 24, 33, 72));//创建一个功能组件 按钮组件JButton jButton = new JButton("点击查看八嘎思密达滴干活");//把按钮添加到面板上jPanel.add(jButton);*//*JPanel jPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));JButton jButton1 = new JButton("按钮1");JButton jButton2 = new JButton("按钮2");JButton jButton3 = new JButton("按钮3");JButton jButton4 = new JButton("按钮4");jPanel.add(jButton1);jPanel.add(jButton2);jPanel.add(jButton3);jPanel.add(jButton4);*///边界布局/*JPanel jPanel = new JPanel(new BorderLayout());JButton jButton1 = new JButton("按钮1");JButton jButton2 = new JButton("按钮2");JButton jButton3 = new JButton("按钮3");JButton jButton4 = new JButton("按钮4");jPanel.add(jButton1,BorderLayout.CENTER);jPanel.add(jButton2,BorderLayout.SOUTH);jPanel.add(jButton3,BorderLayout.WEST);jPanel.add(jButton4,BorderLayout.NORTH);*///网格布局JPanel jPanel = new JPanel(new FlowLayout());//标签组件,可以放文字JLabel label = new JLabel("账号");label.setFont(new Font("楷体", Font.BOLD,20));//设置字体//创建输入框组件JTextField jTextField = new JTextField(15);jTextField.getText();//获得输入框内容JLabel label1 = new JLabel("密码");//创建密码框JPasswordField jPasswordField = new JPasswordField(15);String password = new String(jPasswordField.getPassword());//获取密码jPanel.add(label);jPanel.add(jTextField);jPanel.add(label1);jPanel.add(jPasswordField);//把面板添加到窗口上this.add(jPanel);this.setVisible(true);//让窗口显示出来,放在设置的最后一行}public static void main(String[] args){new LoginFrame_back1();//创述一个窗日}
}
事件处理
//为组件添加监听 及 事件处理程序jMenuItem3.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("记事本V1.0");}});/*new 接口抽象类 不是new接囗/抽象类的对象java为了简化语法,为接口和抽象类提供了一个医名的类来实现维承他们*/jMenuItem2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println(jTextField.getText());}});}public static void main(String[] args){new LoginFrame_back1();//创述一个窗日}
}