本文目录一览:
- java的Swing是轻量级组件,轻量级组件是什么意思?
- java中的swing用法
- JAVA初学者:swing是什么
- java里面的swing组件是什么东西?
- [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创建图形界面步骤:
- 导入Swing包
- 选择界面风格
- 设置顶层容器
- 设置按钮和标签
- 将组件放到容器上
- 为组件增加边框
- 处理事件
- 辅助技术支持
- 导入Swing包 下面语句导入Swing包
import javax.swing.*;
大部分Swing程序用到了AWT的基础底层结构和事件模型,因此需要导入两个包:
import java.awt.*;
import java.awt.event.*;
如果图形界面中包括了事件处理,那么还需要导入事件处理包:
import javax.swing.event.*;
- 选择界面风格 Swing允许选择程序的图形界面风格常用的有Java风格,Windows风格等 下面的代码用于选择图形界面风格,这里选择的是跨平台的Java界面风格。
try {
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
} catch (Exception e) {
}
- 设置顶层容器 图形界面至少要有一个顶级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的意思是:
- 摇摆;摆动
- 摆动的幅度;摆动的范围
The pendulum's swing is 12 inches. 钟摆的摆动幅度是十二寸 - 手臂挥动产生的打击
- 挥动(球棒,高尔夫球棒等物)的姿势
- (态度,地位,状况的)改变
a swing to conservation 转趋保守 - 自由的行为
The children have free swing in deciding what color to paint their room. 孩子可自行决定房间油漆的颜色 - a. 优雅的移动
has a swing to her walk 走路摇曳生姿
b. 前后摆动
the swing of a bird across the sky 鸟在空中的飞行 - (可以回到原点的)路线,行程
a swing across the state while campaigning 竞选时在州内的循环活动 - 秋千
- 正常步调
back in the swing 回归正常 - (诗的)音律
- 股市行情的起伏
- 『音乐』
a. 摇摆乐
1935 年以爵士为基础发展而成的流行舞曲,旋律较简单
b. 放摇摆乐舞曲的舞厅
c. 轻妙的节奏
看来Swing有很多有意思的地方,或许开发者开发Swing组件的时候就看上了哪条吧~