java Swing技术沙龙

Java Swing和AWT(Abstract Window Toolkit)都是Java的图形用户界面(GUI)工具包,用于创建跨平台的桌面应用程序。

AWT(Abstract Window Toolkit):AWT是Java最早的GUI工具包,它提供了一套基本的GUI组件,如按钮、文本框、菜单等。AWT基于本地平台的功能,通过Java的反射机制调用本地代码来实现GUI组件。因此,使用AWT编写的应用程序在跨平台时需要为每个目标平台重新编译。AWT在Java 1.0至Java 1.2期间非常流行,但随着更多功能的需求,其局限性逐渐显现。

Swing:Swing是Java 1.2中引入的GUI工具包,作为AWT的替代品。Swing基于AWT,并添加了许多新的组件和功能,例如JTable、JTree、JTextArea等。Swing通过使用一种称为“Pluggable Look and Feel”的机制,允许用户自定义应用程序的外观和感觉。此外,Swing还支持拖放操作、工具提示和默认按钮等高级功能。Swing的出现极大地简化了Java GUI应用程序的开发,使其成为Java的标准GUI工具包。

随着时间的推移,Swing也经历了一些改进和扩展。总之,Java Swing和AWT都是Java GUI开发的重要工具包。AWT是最早的Java GUI工具包,但随着需求的发展,Swing的出现简化了Java GUI应用程序的开发,成为Java的标准GUI工具包。随着时间的推移,Swing也得到了一些改进和扩展,以适应不断变化的需求。

Java Swing是一个用于开发图形用户界面(GUI)的Java工具包。以下是Java Swing的一些主要知识点:

  1. Swing组件:Swing提供了许多用于创建GUI的组件,如按钮(JButton)、标签(JLabel)、文本框(JTextField)等。这些组件可以用于构建复杂的用户界面。
  2. 容器和布局管理器:容器是用于容纳其他GUI组件的组件,而布局管理器则用于控制组件的大小和位置。Swing提供了多种布局管理器,如BorderLayout、FlowLayout、GridLayout等。
  3. 事件处理:Swing使用事件处理机制来响应用户与GUI组件的交互。事件处理程序是通过实现特定的事件监听器接口来编写的,例如ActionListener、MouseListener等。
  4. 模型-视图-控制器设计模式:Swing采用模型-视图-控制器(MVC)设计模式来组织其组件。MVC模式将GUI组件分为三个部分:模型、视图和控制器。这种设计模式有助于提高代码的可维护性和可扩展性。
  5. 可视化组件和非可视化组件:Swing中的组件可以分为可视化组件和非可视化组件。可视化组件用于呈现GUI元素,如按钮和标签,而非可视化组件则提供了一些功能性的组件,如滑块和进度条。
  6. 颜色和字体:Swing提供了Color和Font类来处理颜色和字体。这些类可以用于设置组件的外观属性,如背景色、前景色和字体样式。
  7. 工具提示和拖放操作:Swing支持工具提示(tooltips)和拖放操作,以增强用户界面的交互性和可用性。工具提示可以在用户将鼠标悬停在组件上时显示简短的提示信息,而拖放操作则允许用户通过拖动来移动或复制组件。

java Swing技术沙龙_第1张图片

import javax.swing.*;
import java.awt.*;
//表示引入了javax包下的所有类和接口。

public class CompDemo extends JFrame {
    public void init() {
        JLabel jLabel = new JLabel("学java真是太好了");
        //创建文本对象
        jLabel.setForeground(Color.BLUE);
        //字体颜色
        Font font =new Font("微软雅黑", Font.BOLD, 20);
        jLabel.setFont(font);
        jLabel.setBorder(BorderFactory.createLineBorder(Color.BLUE));
        //显示边框
        jLabel.setBounds(10,20,200,30);
        this.add(jLabel);
        //把文本对象加入到窗体中



        this.setLayout(null);
        //设置窗体的布局格式(BorderLayout/FlowLayout/BoxLayout)
        ImageIcon imageIcon = new ImageIcon("src/java图片.png");
        JLabel jLabel1 = new JLabel(imageIcon);
        //把图片对象给jLabel1
        jLabel1.setBounds(20,70,400,100);
        //20 - 组件的x坐标
        //70 - 组件的y坐标
        //400 - 组件的宽度
        //100 - 组件的高度
        jLabel1.setToolTipText("野马哥是java真神");
        //当用户将鼠标悬停在组件上时,将会有怪事发生
        jLabel1.setBorder(BorderFactory.createLineBorder(Color.BLUE));
        this.add(jLabel1);
        //把图片对象加入窗体中
        this.setTitle("常用控件");
        //设置窗体
        this.setSize(500, 380);
        //设置当前窗体的宽度高度
        this.setLocationRelativeTo(null);
        //窗体在屏幕里居中
        this.setVisible(true);
        //显示当前窗体
    }

    public static void main(String[] args) {
        new CompDemo().init();
    }
}

java Swing中图片设为当前窗体的图标
import javax.swing.ImageIcon;
import javax.swing.*;
//窗体
public class JFameDemo extends JFrame {
    public  void init() {
        ImageIcon imageIcon = new ImageIcon("src/java图片.png");
        //创造图片对象
        this.setIconImage(imageIcon.getImage());
        //把图片设为当前窗体的图标
        this.setTitle("java真是太好玩了");
        //设置窗体
        this.setSize(500,380);
        //设置当前窗体的宽度高度
        this.setLocationRelativeTo(null);
        //窗体在屏幕里居中
        this.setVisible(true);
        //显示当前窗体
    }
    public static void main(String[] args) {
        new JFameDemo().init();
        //创造窗体对象 调用init初始化方法
    }
}

java Swing中添加背景图片

import javax.swing.*;
import java.awt.*;

public class BackgroundImageDemo {
    public static void main(String[] args) {
        // 创建窗体
        JFrame frame = new JFrame("Background Image Demo");
        // 设置窗体大小
        frame.setSize(400, 300);
        // 设置背景图片
        ImageIcon background = new ImageIcon("src/java图片.png");
        frame.setContentPane(new JLabel(background));

        // 创建账号和密码框
        JTextField usernameField = new JTextField(20);
        JPasswordField passwordField = new JPasswordField(20);

        // 创建登录按钮
        JButton loginButton = new JButton("Login");
        String username = usernameField.getText();
        String password = new String(passwordField.getPassword());
                // TODO: 验证账号和密码

        ;

        // 将账号和密码框,以及登录按钮添加到窗体中
        frame.setLayout(new FlowLayout()); // 设置布局管理器为FlowLayout,以便组件按顺序排列
        frame.add(new JLabel("Username:"));
        frame.add(usernameField);
        frame.add(new JLabel("Password:"));
        frame.add(passwordField);
        frame.add(loginButton);

        // 使窗体大小与背景图片大小相匹配
        frame.pack();
        // 将窗体设置为可见
        frame.setVisible(true);
    }
}

(希望通过努力和更好的自己在未来一次次的重逢~~~)

你可能感兴趣的:(java,开发语言)