swingjava,swingjava食物动态代码

发布时间:2022-11-30

本文目录一览:

  1. java的Swing是轻量级组件,轻量级组件是什么意思?
  2. java中的swing用法
  3. JAVA初学者:swing是什么
  4. java里面的swing组件是什么东西?
  5. [java中swing 全称](#java中swing 全称)

java的Swing是轻量级组件,轻量级组件是什么意思?

一、轻量级组件是用Java代码画出来的,这样具有平台移植性 重量级组件是调用系统的函数画出来的组件,比如主窗体 一般来说尽量用轻量级的组件,这样对程序的移植性很好。 一般java.swing包里的组件大部分是轻量级的,java.awt里面的是重量级的。 Swing是由100%纯Java实现的,Swing组件是用Java实现的轻量级组件,没有本地代码 不依赖操作系统的支持,这是与AWT组件的最大区别。由于AWT组件通过与具体平台的 对等类(peer)实现,因此Swing比AWT组件具有更强的实用性。Swing在不同的 平台上表现一致,并且有能力提供本地窗口系统不支持的其它特性。 二、总的来说就是 重量级组件: 对应运行平台必须存在一个对应的组件。 轻量级组件: 在一个虚拟的画布上画出来的组件(所以Swing较慢),所有轻量级组件"最终"要放到重量级组件(JFrame, JDialog)中。由于是画出来所以能做到各种平台上一致的表现。同样,如果混合重量级组件和轻量级组件容易引起重叠上的冲突。

java中的swing用法

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class TestRegister extends JDialog {
    // setup the variable
    String name = "";
    String password = "";
    JLabel nameL, passwordL;
    JTextField nameArea;
    JPasswordField passwordArea;
    JButton register, login, cancel;
    ArrayList<User> userData = new ArrayList<>();
    public static void main(String[] args) {
        TestRegister test = new TestRegister();
        test.setupLayout();
    }
    public void setupLayout() {
        this.setBounds(300, 200, 280, 120);
        this.setTitle("Register");
        this.setResizable(false);
        this.setModal(true);
        setupTypeArea();
        this.getData();
        this.setVisible(true);
    }
    public void setupTypeArea() {
        JPanel typeArea = new JPanel();
        typeArea.setLayout(new FlowLayout());
        nameL = new JLabel("name: ");
        passwordL = new JLabel("password: ");
        nameArea = new JTextField(15);
        passwordArea = new JPasswordField(15);
        typeArea.add(nameL);
        typeArea.add(nameArea);
        typeArea.add(passwordL);
        typeArea.add(passwordArea);
        this.add(typeArea);
        JPanel buttonArea = new JPanel();
        register = this.addButton("Register", buttonArea);
        login = this.addButton("Login", buttonArea);
        cancel = this.addButton("Cancel", buttonArea);
        this.add(buttonArea, BorderLayout.SOUTH);
    }
    public JButton addButton(String name, JPanel panel) {
        JButton temp = new JButton(name);
        temp.addActionListener(new ButtonMonitor());
        panel.add(temp);
        return temp;
    }
    public void showMessage(String m) {
        JOptionPane.showMessageDialog(this, m);
    }
    public void getData() {
        try {
            Scanner input = new Scanner(new FileReader("D:/data.txt"));
            while (input.hasNextLine()) {
                this.addUser(input.nextLine());
            }
        } catch (FileNotFoundException e) {
            return;
        }
    }
    public void addUser(String data) {
        String[] s = data.split(" ");
        String name = s[0];
        String password = s[1];
        userData.add(new User(name, password));
    }
    public void updateData() {
        try {
            FileWriter saver = new FileWriter("D:/data.txt");
            String data = "";
            for (int i = 0; i < userData.size(); i++) {
                data += userData.get(i).toString() + "\n";
            }
            saver.write(data);
            saver.close();
        } catch (IOException e) {
            return;
        }
    }
    public void doRegister() {
        String name = nameArea.getText();
        String password = passwordArea.getText();
        if (!name.isEmpty() && !password.isEmpty()) {
            for (int i = 0; i < userData.size(); i++) {
                if (name.equals(userData.get(i).getName())) {
                    String m = "这个用户名已经注册!!";
                    this.showMessage(m);
                    doCancel();
                    return;
                }
            }
            userData.add(new User(name, password));
            updateData();
            doCancel();
        } else {
            String m = "用户名或者密码是空!!!";
            this.showMessage(m);
            doCancel();
        }
    }
    public void doLogin() {
        String name = nameArea.getText();
        String password = passwordArea.getText();
        for (int i = 0; i < userData.size(); i++) {
            if (name.equals(userData.get(i).getName()) && password.equals(userData.get(i).getPassword())) {
                String m = "登陆成功";
                this.showMessage(m);
                this.doCancel();
                return;
            }
        }
        String m = "用户名和密码不匹配!!";
        this.showMessage(m);
        this.doCancel();
    }
    public void doCancel() {
        nameArea.setText("");
        passwordArea.setText("");
    }
    class ButtonMonitor implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            if (e.getActionCommand().equals("Register")) {
                doRegister();
            } else if (e.getActionCommand().equals("Login")) {
                doLogin();
            } else if (e.getActionCommand().equals("Cancel")) {
                doCancel();
            }
        }
    }
    class User {
        String name;
        String password;
        public User(String name, String password) {
            this.name = name;
            this.password = password;
        }
        public String getName() {
            return name;
        }
        public String getPassword() {
            return password;
        }
        public String toString() {
            return name + " " + password;
        }
    }
}

给你随便写了一下。。。简单登陆用的话用JDialog就够了不必要用JFrame 其实最好是用数据库

JAVA初学者:swing是什么

看看这个就知道了 Java应用程序用户界面开发包 Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。 工具包中所有的包都是以swing作为名称,例如javax.swing, javax.swing.event 用Swing创建图形界面步骤:

  1. 导入Swing包
  2. 选择界面风格
  3. 设置顶层容器
  4. 设置按钮和标签
  5. 将组件放到容器上
  6. 为组件增加边框
  7. 处理事件
  8. 辅助技术支持
  9. 导入Swing包 下面语句导入Swing包
import javax.swing.*;

大部分Swing程序用到了AWT的基础底层结构和事件模型,因此需要导入两个包:

import java.awt.*;
import java.awt.event.*;

如果图形界面中包括了事件处理,那么还需要导入事件处理包:

import javax.swing.event.*;
  1. 选择界面风格 Swing允许选择程序的图形界面风格常用的有Java风格,Windows风格等 下面的代码用于选择图形界面风格,这里选择的是跨平台的Java界面风格。
try {
    UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
} catch (Exception e) {
}
  1. 设置顶层容器 图形界面至少要有一个顶级Swing容器 顶级Swing容器为其它Swing组件在屏幕上的绘制和处理事件提供支持 常用的顶级容器:
  • JFrame(框架):表示主程序窗口
  • JDialog(对话框):每个JDialog对象表示一个对话框,对话框属于二级窗口
  • JApplet(小程序):在浏览器内显示一个小程序界面 一个框架包括边界、菜单栏、工具栏、状态栏,以及中间占主要部分的窗格 窗格也可以看作是一种面板,但它是框架的一个组成部分 组件不会直接放到框架上,而是放在若干个面板上,这些面板再放到窗格上 用框架对象的getContentPane()函数来获得窗格,再调用窗格的add()函数放置面板
public static void main(String[] args) {
    JFrame frame = new JFrame("SwingApplication");
    JPanel panel1 = new JPanel();
    frame.getContentPane().add(panel1, BorderLayout.CENTER);
    // 添加其他组件
    frame.pack();
    frame.setVisible(true);
}

java里面的swing组件是什么东西?

是一种B/S结构的,做的是桌面程序的,但是Java的Swing不是很好,Java强打的是网页,所以一般很少用到Swing

java中swing 全称

Swing就是全称 AWT是Abstract Window Toolkit的简写,但是Swing没有 Swing的意思是:

  1. 摇摆;摆动
  2. 摆动的幅度;摆动的范围
    The pendulum's swing is 12 inches. 钟摆的摆动幅度是十二寸
  3. 手臂挥动产生的打击
  4. 挥动(球棒,高尔夫球棒等物)的姿势
  5. (态度,地位,状况的)改变
    a swing to conservation 转趋保守
  6. 自由的行为
    The children have free swing in deciding what color to paint their room. 孩子可自行决定房间油漆的颜色
  7. a. 优雅的移动
    has a swing to her walk 走路摇曳生姿
    b. 前后摆动
    the swing of a bird across the sky 鸟在空中的飞行
  8. (可以回到原点的)路线,行程
    a swing across the state while campaigning 竞选时在州内的循环活动
  9. 秋千
  10. 正常步调
    back in the swing 回归正常
  11. (诗的)音律
  12. 股市行情的起伏
  13. 『音乐』 a. 摇摆乐
    1935 年以爵士为基础发展而成的流行舞曲,旋律较简单
    b. 放摇摆乐舞曲的舞厅
    c. 轻妙的节奏
    看来Swing有很多有意思的地方,或许开发者开发Swing组件的时候就看上了哪条吧~