文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JAVA SWING

2023-09-18 06:05

关注

文章目录


前言

最近在写一个java的小项目,用到了Java swing的技术,本篇博客对Java swing作ava平台的用户界面(UI)工具包。它提供了一组图形用户界面(GUI)组件,例如按钮、文本框、标签等,以及布局管理器,用于创建基于桌面的应用程序。在本篇博客中,我将介绍JavaSwing的基本概念和用法。


一、Java swing概述?

Swing是Java平台的一部分,它的主要目的是提供一个跨平台的用户界面工具包。Swing提供了一组GUI组件和布局管理器,用于构建桌面应用程序。Swing的设计目标是让开发人员能够轻松地创建具有丰富用户界面的应用程序,并且这些应用程序可以在不同的操作系统上运行。

Swing是基于Java AWT(抽象窗口工具包)构建的。AWT是Java平台的另一个用户界面工具包,但它的主要问题是不跨平台。Swing通过提供一组跨平台的GUI组件和布局管理器来解决这个问题。

二、Java swing 的组件

Swing提供了许多GUI组件,包括标签、按钮、文本框、下拉列表、表格等。这些组件都是从JComponent类继承而来的。JComponent类是Swing组件的基类,它提供了一些通用的方法和属性,例如事件处理和边框。

下面是一些常用的Swing组件:

//显示文本JLabel label = new JLabel("Hello, World!");
JButton button = new JButton("Click me!");button.addActionListener(new ActionListener() {    public void actionPerformed(ActionEvent e) {        // 处理按钮点击事件的代码    }});
JTextField textField = new JTextField(20);textField.addActionListener(new ActionListener() {    public void actionPerformed(ActionEvent e) {        // 处理文本框的回车事件的代码        String text = textField.getText();        // 处理文本框输入的代码    }});
passwordField.addActionListener(new ActionListener() {    public void actionPerformed(ActionEvent e) {        char[] password = passwordField.getPassword();        String passwordString = new String(password);        // 处理密码输入完成后的事件的代码    }});
String[] options = {"Option 1", "Option 2", "Option 3"};JComboBox<String> comboBox = new JComboBox<>(options);comboBox.addActionListener(new ActionListener() {    public void actionPerformed(ActionEvent e) {        String selectedOption = (String) comboBox.getSelectedItem();        // 处理下拉框选项改变事件的代码    }});

三、Java swing 的布局管理器

Swing提供了各种布局管理器,用于管理组件的位置和大小。布局管理器可以帮助我们在不同的平台上创建具有相同外观的应用程序。

下面是一些常用的布局管理器:

四、Java swing 的事件处理

Swing使用事件驱动模型来处理用户输入事件。当用户与Swing组件交互时,Swing将生成相应的事件,并将其传递给事件处理程序。事件处理程序可以是一个方法、一个内部类或一个独立的对象。

下面是一些常用的Swing事件:

五、Java swing 的示例代码

 下面是一个小球移动的案例:
package com.hspedu.event;import javax.swing.*;import java.awt.*;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.security.Key;public class BallMove extends JFrame{//窗口    MyPanel mp = null;    public static void main(String[] args) {        BallMove ballMove = new BallMove();    }    public BallMove(){        mp = new MyPanel();        this.add(mp);        this.setSize(400,400);        //窗口JFrame对像可以监听键盘事件        this.addKeyListener(mp);        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        this.setVisible(true);    }}//画板,KeyListener监听键盘事件class MyPanel extends JPanel implements KeyListener {    //为了让小球可以移动,把他的左上坐标设置成变量    int x=10;    int y=10;    @Override    public void paint(Graphics g) {        super.paint(g);        g.fillOval(x,y,20,20);//默认黑色    }    //有字符输入时,该方法就会触发    @Override    public void keyTyped(KeyEvent e) {    }    //当某个键按下时    @Override    public void keyPressed(KeyEvent e) {        System.out.println((char)e.getKeyCode()+"被按下。。。");        //根据用户按下的不同键来处理小球的移动        if (e.getKeyCode() == KeyEvent.VK_DOWN){ //KeyEvent.VK_DOWN对应向下的箭头,Java中会给每一个值分配对应的(int)值            y++;        }else if(e.getKeyCode() == KeyEvent.VK_UP){//向上的箭头            y--;        }else if(e.getKeyCode() == KeyEvent.VK_RIGHT){//右箭头            x++;        }else if(e.getKeyCode() == KeyEvent.VK_LEFT){//左箭头            x--;        }        //重绘        this.repaint();    }    //当某个键释放    @Override    public void keyReleased(KeyEvent e) {    }}

效果图:
通过上下左右键我们可以操作小球移动。这时候想,假如我把小球换成坦克,在画板上设置其它的坦克,再设置一些不可通过的障碍,这样,童年游戏坦克大战的雏形是不是就出来了?
在这里插入图片描述


总结

Java Swing是Java平台的一个强大的GUI工具包,它提供了一组跨平台的GUI组件和布局管理器,以及事件处理机制。通过使用Swing,我们可以轻松地创建具有丰富用户界面的桌面应用程序。

来源地址:https://blog.csdn.net/a545__27/article/details/131583179

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯