最近在自学java Swing,实现了一些小小的功能,与大家分享。(有不足之处,希望多多指教)
-
1."抓不到"按钮
-
2.会动的小狗**
-
3.登录界面**
-
4.自用小便签(一键清空)**
-
5.自定义面板界面颜色**
-
6.画图工具,多人聊天室(待实现)**
-
7.源代码会在下一篇文章贴出**
- 以下是登录界面的源码,(类文件)
package ch10;
import javax.swing.*;
import java.awt.event.*;
public class Into extends JFrame{
private JPanel jp;
private JLabel name,pass,jl;
private JTextField field;
private JButton b1,b2;
private JPasswordField password;
private String user="admin";
private String pwd="1234";
public Into() {
super("用户登录界面");
jp=new JPanel();
jp.setLayout(null);
name=new JLabel("用户名 :");
pass=new JLabel("密码 :");
field=new JTextField(20);
password=new JPasswordField(20);
b1=new JButton("登陆");
b2=new JButton("取消");
- 确定按钮的事件处理
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String strName=field.getText();
String strPass=new String(password.getPassword());
if(strName.equals(user)) {
if(strPass.equals(pwd)) {
new bookdata();
}
}
}
});
- 取消按钮的事件处理
b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
field.setText("");
password.setText("");
}
});
ImageIcon imga=new ImageIcon("images/a.gif");
jl=new JLabel(imga);
name.setBounds(30,30,60,25);field.setBounds(95,30,170,25);
pass.setBounds(30,60,60,25);password.setBounds(95,60,170,25);
jl.setBounds(350, 200, imga.getIconWidth(), imga.getIconHeight());
b1.setBounds(95,190,80,25);
b2.setBounds(195,190,80,25);
jp.add(name);
jp.add(field);
jp.add(pass);
jp.add(password);
jp.add(jl);
jp.add(b1);
jp.add(b2);
this.add(jp);
this.setSize(700,500);
this.setLocationRelativeTo(null);//将窗口至于屏幕中央
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
- 主界面
package ch10;
import javax.swing.*;
import java.awt.Font;
import java.awt.Color;
import java.awt.BorderLayout;
import java.awt.event.*;
import java.awt.FlowLayout;
import photo.View;
public class FlowLayoutDemo extends JFrame{
private JPanel jp;
private JButton b1;
private JButton b2,b3,b4,b5;
private JLabel jl,jL,JL;
private Font f;
View view=new View();
public FlowLayoutDemo() {
//super("记事本");
b2=new JButton("进入图书管理系统");
b1=new JButton("设置界面颜色");
b3=new JButton("来抓我呀");
b4=new JButton("还原界面颜色");
b5=new JButton("实用小便签");
jl=new JLabel("图书管理系统初始登陆界面",JLabel.CENTER);//创建一个指定图标的标签对象
ImageIcon img=new ImageIcon("images/d.jpg");//设置背景图片
jL=new JLabel(img);//创建标签为gif的标签
jL.setBounds(130, 0, 1028, 720);//设置背景图片的尺寸
// ImageIcon imga=new ImageIcon("images/a.gif");
// JL=new JLabel(imga);
// JL.setBounds(50, 360, 230, 250);
// JL.addMouseListener(new MouseAdapter() { //将适配器以匿名监听方式注册到b3按钮上
// public void mouseEntered(MouseEvent e) {
// int x=(int)(Math.random()*525);
// int y=(int)(Math.random()*450);
// JL.setBounds(x,y,img.getIconWidth(), img.getIconHeight());
// }
// });
f=new Font("Serief",Font.BOLD,28);
jl.setFont(f);//设置标签字体
FlowLayout layout=new FlowLayout(FlowLayout.CENTER,500,15);//建立流布局函数对象并初始化
// BorderLayout bord=new BorderLayout();//实例化边界布局的对象
jp=new JPanel();
jp.setLayout(null);//设置布局为空
// jp.add(b1,BorderLayout.CENTER);//边界布局设置位置
// jp.add(b2,BorderLayout.EAST);
// jp.add(b3,BorderLayout.WEST);
jp.add(jl);//添加面板
jp.add(b1);
jp.add(b2);
jp.add(b3);
jp.add(b4);
jp.add(b5);
// jp.add(JL);
jp.add(jL);
MyListener listener=new MyListener();
b1.addActionListener(listener);
b2.addActionListener(listener);
// b3.addActionListener(listener); //将listener对象注册至b3按钮
b3.addMouseListener(new MouseAdapter() { //将适配器以匿名监听方式注册到b3按钮上
public void mouseEntered(MouseEvent e) {
int x=(int)(Math.random()*525);
int y=(int)(Math.random()*250);
b3.setLocation(x,y);
}
});
b3.addActionListener(listener);
b4.addActionListener(listener);
b5.addActionListener(listener);
b1.setBounds(100,50,150,60);//按钮的左右上下长度宽度
b2.setBounds(100,150,150,60);
b3.setBounds(100,450,150,60);
b4.setBounds(100,350,150,60);
b5.setBounds(100, 250, 150, 60);
this.add(jp);
this.setTitle("登陆界面");//设置窗口标题
this.setSize(950,720);//设置窗口尺寸
this.setLocationRelativeTo(null);//将窗口至于屏幕中央
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置程序缺省关闭操作
}
- 创建MyListener监听类
public class MyListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
Object source=e.getSource();//获取事件源
if(source==b2)
new Into();
// View view=new View();
// view.print();
if(source==b1)
jp.setBackground(Color.green);
// System.out.println("很遗憾的告诉你,按钮功能待开发");
if(source==b3) {
jp.setBackground(Color.red);
}
if(source==b4)
jp.setBackground(Color.white);
if(source==b5)
new notepad();
}
}
- 主函数,,,,,,,,,,,,,,,,,,,,,,,
public static void main(String args[])
{
FlowLayoutDemo flow=new FlowLayoutDemo();
flow.setVisible(true);
}
}
- 便签功能的实现(类文件)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
package ch10;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.*;
import javax.swing.*;
public class notepad extends JFrame{
private JPanel jp;
private JLabel jl;
private JTextArea jt;
private JButton b;
public notepad() {
super("便签");
b=new JButton("清空文本域");
jt=new JTextArea(100,45);
Font f=new Font("Serief",Font.CENTER_BASELINE,25);
jt.setFont(f);
jt.setLineWrap(true);//使文本框自动换行
JScrollPane jsp=new JScrollPane(jt);//给文本区增加滚动条
jp=new JPanel();
FlowLayout layout=new FlowLayout(FlowLayout.CENTER,500,15);
jp.setLayout(layout);
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jt.setText("");
}
});
// b.setBounds(0, 20, 100, 30);
jp.add(b);
jp.add(jsp);
jp.add(jt);
this.add(jp);
this.setSize(1028,720);
this.setLocation(100, 100);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setVisible(true);
}
}
网友评论