美文网首页
java swing还值不值得我们学习?(附经典小程序集合带部分

java swing还值不值得我们学习?(附经典小程序集合带部分

作者: 大侦探皮卡丘 | 来源:发表于2019-10-01 23:34 被阅读0次

最近在自学java Swing,实现了一些小小的功能,与大家分享。(有不足之处,希望多多指教)

  • 1."抓不到"按钮

  • 2.会动的小狗**

  • 3.登录界面**

  • 4.自用小便签(一键清空)**

  • 5.自定义面板界面颜色**

  • 6.画图工具,多人聊天室(待实现)**

  • 7.源代码会在下一篇文章贴出**

image image image image
  • 以下是登录界面的源码,(类文件)

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);

}

}

相关文章

网友评论

      本文标题:java swing还值不值得我们学习?(附经典小程序集合带部分

      本文链接:https://www.haomeiwen.com/subject/bxjlpctx.html