java的swing

java的swing

本文目录

  • java的swing
  • 如何用Java创建一个简单的Swing应用程序
  • java的swing组件的使用
  • java swing的学习
  • java swing怎样开发出漂亮的界面
  • java怎么做swing界面
  • java中的swing用法

java的swing


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

如何用Java创建一个简单的Swing应用程序


import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class BallFrame {
public static void main(String args) {
JFrame f = new JFrame();
BallPanel bp = new BallPanel();
f.add(bp);
f.setSize(300, 300);
f.setDefaultCloseOperation(3);
f.setLocationRelativeTo(null);
f.setVisible(true);
new Thread(bp).start();
}
}
@SuppressWarnings(“serial“)
class BallPanel extends JPanel implements Runnable{
private int x=150,y=150,width=50,height=50;
private int speedx,speedy;
public BallPanel() {
this.setBackground(Color.BLACK);
speedx = (int) (Math.random()*5) + 2 ;
speedy = (int) (Math.random()*5) + 2;
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.fillOval(x, y, width, height);
}
@Override
public void run() {
while (true) {
//边界问题
if (x + width 》= this.getX() + this.getWidth() || x 《= this.getX()) {
speedx = -speedx;
}
if (y + height 》= this.getY() + this.getHeight() || y 《= this.getY()) {
speedy = -speedy;
}
try {
Thread.sleep(40);
} catch (InterruptedException e) {
e.printStackTrace();
}
x += speedx;
y += speedy;
this.repaint();
}
}
}

java的swing组件的使用


Swing是用于图形用户界面开发的一个全面解决方案,包括250多个类,在这里不能一一列出。本书仅使用Swing用户界面。
1.标 签 2.按 钮 3.文本域 4.文本区 5.列表框 6.组合框
7.复选框 8.单选按钮 9.滚动条 10.选项卡 11.对话框 12.菜 单
1.标 签
标签类JLabel是用于显示文字或图标的简单组件。JLabel的构造方法包括:
public JLabel()
public JLabel(Icon icon)
public JLabel(Icon icon, int horizontalAlignment)
public JLabel(String text)
public JLabel(String text, Icon icon, int horizontalAlignment)
public JLabel(String text, int horizontalAlignment)
在构造方法中,text指定标签的文字,icon指定标签的图标,horizontalAlignment指定文本或图标的水平对齐方式。
JLabel实例维护属性包括:
表8.3 JLabel的属性 属性名
数据类型
访问
缺省值

disabledIcon
Icon
SG
灰色过滤图标

displayedMnemonic
Int
SG
——

horizontalAlignment
Int
CSG
LEFT

horizontalTextPosition
Int
SG
RIGHT

Icon
Icon
CSG
null

iconTextGap
Int
SG
4个像素

labelFor
Component
SG
null

Text
String
CSG
“”

verticalAlignment
Int
SG
CENTER

verticalTextPosition
int
SG
CENTER

注:在访问中,C=可在构造时设置/G=获取方法/S=设置方法
disabledIcon:标签被禁用时显示的图标。
displayedMnemonic:设置LabelFor属性后显示的助记符。
horizontalAlignment:标签内容的水平对齐方式。取值包括:SwingConstants.LEFT、SwingConstants.RIGHT和SwingConstants.CENTER。
horizontalTextPosition:文本相对于图标的水平位置;与水平对齐方式的有效值相同。
icon:标签在启用时显示的图标。
iconTextGap:标签的文本与图标之间的间隙,以像素点为单位。
labelFor:一个组件,它在标签的助记符被键入时获得焦点。
Text:标签显示的文本。
verticalAlignment:标签内容的垂直对齐方式。取值包括:SwingConstants.TOP、SwingConstants.BOTTOM和SwingConstants.CENTER。

java swing的学习


问题太笼统啊!
首先java基础要牢靠
其次学习javaswing的布局,把布局学透,每种布局都有特定用到的时候,用到较多的是BorderLayout和GridBagLayout
布局学完后,就是具体组件的运用,挑选常用的(如JTable,文本组件、单选框复选框、滚动条等)去看,去练习。

最后,最好是能做个整体的软件,将学过的东西串起来加以运用!

常翻API!

有问题再追问,good luck!

java swing怎样开发出漂亮的界面


使用Swing照样可以开发出漂亮的界面. 

主要的解决方案如下:

  • 1: 合理的布局 , 搭建好界面的框架. 熟悉常用的布局, 并且布局还可以嵌套布局.  可以实现复杂而又美观的界面. 

  • 2: 适当的图片,  按钮, 背景等 都可以使用图片, 当然了为了节省系统资源, 可以使用稍微压缩得比较小的图片. 

  • 3: 搭配html , swing支持html简单的标签, 所以美化JButton ,JLabel等组件时, 可以使用一些Html标签. 来美化~~

  • 4: 颜色调和. 界面要美观, 也可以适当的添加颜色, 但是要注意搭配和协调

  • 5: 重写部分组件, swing自带的组件外观, 的确不太让人恭维,  但是我们可以自己根据需求进行重写.

  • 6: 添加动态效果, 我们写javaScript经常是用来做特效的 , 我们可以借鉴一些JS特效的思路, 使用线程, 来给swing组件 等,添加动态的效果 , 比如抖动,  移动 , 滑出 等 特效~

  • 7: 更换皮肤和外观 , 或者使用第三方的皮肤 ,比大神制作的皮肤BeautyEye ,就想当的漂亮


java怎么做swing界面


swing做界面,一般需要一种基本知识:

一:关于布局的知识,常用的布局要熟悉,比如边界布局,流式布局,绝对布局,网格布局等.  布局决定了组件(按钮,文本框,下拉框等)所在的位置

二:关于事件响应机制,比如点击按钮事件,如何响应.

三:一些常用的组件,按钮, 文本框, 下拉框,复选按钮, 单选按钮, 等

举例:  简单的代码,实现给窗口随机更换背景色

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DemoFrame extends JFrame implements ActionListener{

public DemoFrame() {
JButton jb1 = new JButton(“点击换背景色“);//定义按钮组件
jb1.addActionListener(this);//给按钮添加事件响应机制,按钮点击时执行actionPerformed方法
add(jb1);//把组件添加到窗口
setLayout(new FlowLayout());//流式布局
setTitle(“Color“);//窗口标题
setSize(300,200);//大小
setLocationRelativeTo(null);//居中
setDefaultCloseOperation(EXIT_ON_CLOSE);//点击关闭退出系统
setVisible(true);//窗口可见
}
public static void main(String args) {//main方法,启动窗口
new DemoFrame();//创建窗口
}

public void actionPerformed(ActionEvent e) {//当按钮被点击时,执行下面的代码
//随机颜色,并设置成为窗口的背景色
getContentPane().setBackground(new Color((int)(Math.random()*256),(int)(Math.random()*256),(int)(Math.random()*256)));
}
}

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 《User》();
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;
String password = s;
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
其实最好是用数据库

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部