GUI编程(图形用户界面)
UI–用户界面
图形界面是方便用户操作的
swing概述
javax.swing包;
此包包含了java主要的图形界面的实现类
窗口实现代码:
import javax.swing.*;
public class oginFrame extends JFrame {
public oginFrame(){
this.setTitle("欢迎宝宝!");//设置标题
this.setSize(500,500);//设置宽高
this.setLocation(200,400);//设置窗口位置
//this.setLocationRelativeTo(null);//使窗口水平垂直居中
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时退出程序
this.setResizable(false);//设置禁止窗口通过拖拽调整大小
this.setVisible(true);//让窗口显示,放在设置的最后一行
}
public static void main(String[] args) {
new oginFrame();//创建一个窗口对象
}
}
面板实现代码:
//创建面板
JPanel jPanel=new JPanel();
jPanel.setBackground(new Color(0x8FEF09));//设置背景颜色
JButton jButton=new JButton("按钮");//创建按钮
jPanel.add(jButton);//向面板上添加组件
//把面板添加到窗口上
this.add(jPanel);
this.setVisible(true);//让窗口显示,放在设置的最后一行
面板布局:
FlowLayout(流式布局):
JPanel jPanel=new JPanel(new FlowLayout(FlowLayout.LEFT));//流式布局,且设置布局为左对齐
JPanel jPanel=new JPanel(new FlowLayout(FlowLayout.LEFT,100,200));//设置对齐与按钮之间水平,垂直距离
BorderLayout(边界布局):
- 总共有五个区域,每个区域可以设置一个组件,并且占满整个区域;
- 中间区域是必须的;
- 如不指定组件加入区域则均加入中间区域。
JPanel jPanel=new JPanel(new BorderLayout());//以边界布局放置按钮
JButton jButton=new JButton("按钮");
JButton jButton1=new JButton("按钮");//创建按钮
jPanel.add(jButton,BorderLayout.EAST);//向面板右边添加按钮
jPanel.add(jButton1,BorderLayout.WEST);//向面板左边添加组件
GridLayout(网格布局):
- 网格类似一个表格,可以设置行数和列数;
- 每个网格中只能放一个组件,占满整个区域;
JPanel jPanel=new JPanel(new GridLayout(1,2));
面板的优化:
文本框滚轮:
JPanel jPanel=new JPanel();
JTextArea jTextArea=new JTextArea(5,5);//设置文本框大小
jTextArea.setLineWrap(true);//自动换行
JScrollPane jScrollPane=new JScrollPane(jTextArea);//创建滚轮
jPanel.add(jScrollPane);//显示滚轮
菜单栏及菜单项:
JPanel jPanel=new JPanel();
//菜单 菜单栏 菜单项
JMenuBar jMenuBar=new JMenuBar();//创建菜单栏
JMenu jMenu=new JMenu("菜单");
JMenu jMenu1=new JMenu("编辑");
JMenu jMenu2=new JMenu("帮助");//创建菜单
JMenuItem jMenuItem=new JMenuItem("新建");
JMenuItem jMenuItem1=new JMenuItem("保存");
JMenuItem jMenuItem2=new JMenuItem("关于我们");
JMenuItem jMenuItem3=new JMenuItem("删除");//创建菜单项
jMenu1.add(jMenuItem);
jMenu1.add(jMenuItem1);
jMenu.add(jMenuItem3);
jMenu2.add(jMenuItem2);//将菜单项加入菜单内
jMenuBar.add(jMenu);
jMenuBar.add(jMenu1);
jMenuBar.add(jMenu2);
this.setJMenuBar(jMenuBar);//把菜单栏添加到窗口
JMenu<—JMenuItem
按钮功能的实现(监听):
JButton jButton=new JButton("登录");
jPanel.add(jButton);
jButton2.addActionListener(new ActionListener() {//创建一个匿名内部类
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(jTextField.getText());
}//实现的功能
});
JMenuItem jMenuItem=new JMenuItem();
JPanel.add(jMenuItem);
jMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("不知道");
}
});//菜单项功能的实现
各种监听实现的方法:
鼠标
jButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
}
@Override
public void mousePressed(MouseEvent e) {
super.mousePressed(e);
}
@Override
public void mouseReleased(MouseEvent e) {
super.mouseReleased(e);
}
@Override
public void mouseEntered(MouseEvent e) {
System.out.println("鼠标移入");
super.mouseEntered(e);
}
@Override
public void mouseExited(MouseEvent e) {
super.mouseExited(e);
}
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
super.mouseWheelMoved(e);
}
@Override
public void mouseDragged(MouseEvent e) {
super.mouseDragged(e);
}
@Override
public void mouseMoved(MouseEvent e) {
super.mouseMoved(e);
}
});
键盘:
jTextField.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
super.keyTyped(e);
}
@Override
public void keyPressed(KeyEvent e) {
super.keyPressed(e);
}
@Override
public void keyReleased(KeyEvent e) {
super.keyReleased(e);
}
});