创建面板(GUI,JFrame的基本使用方法,监听)

本文介绍了JavaSwing库在GUI编程中的应用,详细讲解了JFrame窗口、JPanel面板、常用组件(如标签、文本框、按钮)的使用方法,以及FlowLayout、边界布局和网格布局的实现。同时涵盖了菜单的创建和事件监听的示例。
摘要由CSDN通过智能技术生成

目录

GUI:

Swing :

常用容器:JFrame类创造窗体

JPanel面板:

常用组件:标签,文本,按钮

1.JLabel标签 :

2.单行文本(JTextField),多行文本框(JTextArea)

JFrame的基本使用方法:

Layout:布局

1.流式布局

2.边界布局

3.网格布局

菜单:

监听:事件处理


GUI:

GUI(Graphical User Interface)即图形用户界面,是指采用图形方式显示的用户界面,与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。

Swing :

简介:swing 是一个为Java设计的GUI工具包javax.swing,该包中包括了图形用户界面的各种组件支持。 一个 Java 的图形界面,由各种不同类型的“元素”组成,这些“元素”被称为组件(Component)。

swing中的组件可以分为两大类:容器(如窗口,对话框,面板)和功能组件(如按钮,输入框,菜单等). 它们的区别主要是在概念上的。因为每个容器也都是组件。容器是一种可以包含组件的特殊组件。

常用容器:JFrame类创造窗体

方法:

设置窗体大小:void setSize(int width, int height)

是否可见窗体:void setVisible(boolean b)

设置窗口标题:void setTitle(String title

是否可以拖拽改变大小:void setResizable(boolean resizable)

设置出现的初始位置:void setLocation(int x,int y)

是否置于屏幕中心:void setLocationRelativeTo(null);

关闭窗口程序停止:void setDefaultCloseOperation(int operation)

当前窗口消失:void dispose()

JPanel面板:
构造方法说明
JPanel()创造一个空面板
JPanel(LayoutManaer layout)创造带有指定布局的面板

常用方法:

void setBackground(Color bg)设置面板的背景色,由参数bg指定颜色

void setLayout(LayoutManager mgr)设置面板的布局,参数是布局管理器

Component add(Component comp)往面板中添加一个组件

常用组件:标签,文本,按钮
1.JLabel标签 :

JLable:创建一个空的标签

JLabel(String text) 创建一个带文本的标签

方法:

void setText(String text) 设置标签上的文本

String getText() 获得标签上的文本

setFont(new Font(“宋体”,Font.BOLD, 18)); 设置字体

2.单行文本(JTextField),多行文本框(JTextArea)

JTextField:

JTextField的构造函数:

JTextField(int columns)

方法:

void setText(String text) 设置文本框中的文本

String getText() 获得文本框中的文本

JTextArea:

构造函数:

JTextArea(int rows, int columns) 创建一个指定行数和列数的空文本域

方法:

void setText(String text) 设置文本域中的文本

String getText() 获得文本域中的文本

void setFont(Font font) 设置文本域中文本的字体

void setLineWrap(boolean wrap) //是否自动换行,默认false

如果需要文本区自动出现滚动条,可将文本区对象放入滚动窗格(JScrollPane)中:

JScrollPane scrollPane = new JScrollPane(txtArea);

add(scrollPane );

JFrame的基本使用方法:

用方法继承JFrame父类,然后重写他的构造方法。

Layout:布局

有三种布局方式

1.流式布局
public class DemoFrame extends JFrame {
​
    public DemoFrame()
    {
        this.setTitle("欢迎登录");//设置标题
        this.setSize(200, 200);//设置窗口宽高
        this.setLocation(200, 400);//设置窗口位置
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时退出程序
​
​
        /*面板组件:布局管理器
        * Flowlayout:流式布局   默认布局方式
        *             把组件放在一排,从左到右排放,一行占满后,重新开启一行。
        *             模板默认流式布局是水平居中的
        * */
        JPanel jPanel1=new JPanel(new FlowLayout());
        //JPanel jPanel1=new JPanel(new FlowLayout(FlowLayout.LEFT,10,10));//设置组件之间水平,垂直间距
​
        JButton jButton1=new JButton("按钮一");
        JButton jButton2=new JButton("按钮二");
​
        jPanel1.add(jButton1);
        jPanel1.add(jButton2);
                //把面板添加到窗口上
        this.add(jPanel1);
        this.setVisible(true);//让窗口显示,放在代码的最后一行。
    }
​
    public static void main(String[] args) {
        new DemoFrame();
    }
}
2.边界布局
public class DemoFrame extends JFrame {
​
    public DemoFrame()
    {
        this.setTitle("欢迎登录");//设置标题
        this.setSize(200, 200);//设置窗口宽高
        this.setLocation(200, 400);//设置窗口位置
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时退出程序
​
​
        /*边界布局:
        *   总共有五个区域,每个区域可以放置一个组件,并且占满该区域的空间
        *   中间区域是必须的,其他几个区域可以根据需要使用
        * */
        JPanel jPanel2=new JPanel(new BorderLayout());
          JButton jButton3=new JButton("按钮一");
          JButton jButton4=new JButton("按钮二");
          JButton jButton5=new JButton("按钮三");
          JButton jButton6=new JButton("按钮四");
          JButton jButton7=new JButton("按钮五");
​
          jPanel2.add(jButton3,BorderLayout.EAST);
          jPanel2.add(jButton4,BorderLayout.WEST);
          jPanel2.add(jButton5,BorderLayout.NORTH);
          jPanel2.add(jButton6,BorderLayout.SOUTH);
          jPanel2.add(jButton7,BorderLayout.CENTER);
                 //把面板添加到窗口上
        this.add(jPanel2);
        this.setVisible(true);//让窗口显示,放在代码的最后一行。
    }
​
    public static void main(String[] args) {
        new DemoFrame();
    }
}
3.网格布局
public class DemoFrame extends JFrame {
​
    public DemoFrame()
    {
        this.setTitle("欢迎登录");//设置标题
        this.setSize(200, 200);//设置窗口宽高
        this.setLocation(200, 400);//设置窗口位置
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时退出程序
​
        /*网格布局
        *
        * */
        JPanel jPanel3=new JPanel(new GridLayout(2,2));
          JButton jButton8=new JButton("按钮一");
          JButton jButton9=new JButton("按钮二");
          JButton jButton10=new JButton("按钮三");
          JButton jButton11=new JButton("按钮四");
​
          jPanel3.add(jButton8);
          jPanel3.add(jButton9);
          jPanel3.add(jButton10);
          jPanel3.add(jButton11);
        //把面板添加到窗口上
        this.add(jPanel3);
        this.setVisible(true);//让窗口显示,放在代码的最后一行。
    }
​
    public static void main(String[] args) {
        new DemoFrame();
    }
}
菜单:

位于边框下,分为菜单栏,菜单以及菜单项目先创建菜单栏,菜单,以及菜单项目,再将菜单栏放入面板,菜单放入菜单栏,菜单项目放入菜单项目。

public class Component1Frame extends JFrame{
   public Component1Frame()
   {
       this.setTitle("欢迎登录");//设置标题
       this.setSize(200, 200);//设置窗口宽高
       this.setLocation(200, 400);//设置窗口位置
       this.setDefaultCloseOperation(JFrame.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("剪切");
       JMenuItem jMenuItem4=new JMenuItem("复制");
       JMenuItem jMenuItem5=new JMenuItem("关于我们");
​
       //把菜单添加到菜单栏
       jMenuBar.add(jMenu1);
       jMenuBar.add(jMenu2);
       jMenuBar.add(jMenu3);
​
       //把菜单项目添加到菜单栏
       jMenu1.add(jMenuItem1);
       jMenu1.add(jMenuItem2);
       jMenu2.add(jMenuItem3);
       jMenu2.add(jMenuItem4);
       jMenu3.add(jMenuItem5);
​
       this.setJMenuBar(jMenuBar);//放置菜单栏
​
       this.setVisible(true);//让窗口显示,放在代码的最后一行。
   }
​
    public static void main(String[] args) {
        new Component1Frame();
    }
}

测试结果:

监听:事件处理

● Java中,事件处理的基本思路如下:

● 一个事件源产生一个事件并把它送到监听器那里,监听器一直等待,直到它收到一个事件,一旦事件被接受,监听器将处理这些事件;

使用方法举例:

JButton jButton1 = new JButton("注册");
jButton1.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
           JOptionPane.showMessageDialog(null, "你点击了");
    }
});

当点击内容为注册的Jbutton1组件的时候,系统进行处理。

  • 22
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值