美文网首页
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