ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java练手(供本人观看 如果有人观看 欢迎提出意见 )残版实时更新

2021-07-21 18:58:06  阅读:151  来源: 互联网

标签:练手 java public 观看 SpringLayout import new addElement


无说明 练手小项目 残版 实时更新

package com;

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.net.URL;

public class LoginView extends JFrame {


    JLabel nameLabel = new JLabel("DX 成绩管理中心", JLabel.CENTER);
    SpringLayout springLayout = new SpringLayout();
    JPanel centerPanel = new JPanel(springLayout);
    JLabel userNameLabel = new JLabel("用户名");
    JTextField userTxt = new JTextField();
    JLabel pwdLabel = new JLabel("密码");
    JPasswordField pwdField = new JPasswordField();
    JButton loginBtn = new JButton("登录");
    JButton resetBtn = new JButton("重置");

    SystemTray systemTray;
    TrayIcon  trayIcon;

    LoginHandler loginHandler;
    public LoginView() {

        super("DX 成绩管理中心");
        Container contentPane = getContentPane();
         loginHandler=new LoginHandler(this);

        nameLabel.setFont(new Font("华文行楷", Font.PLAIN, 40));
        nameLabel.setPreferredSize(new Dimension(0, 80));
        Font centerFont = new Font("楷体", Font.PLAIN, 20);
        userNameLabel.setFont(centerFont);
        loginBtn.setFont(centerFont);
        resetBtn.setFont(centerFont);
        pwdLabel.setFont(centerFont);
        userTxt.setPreferredSize(new Dimension(200, 30));
        pwdField.setPreferredSize(new Dimension(200, 30));
//        把组建加入面板
        centerPanel.add(userNameLabel);
        centerPanel.add(userTxt);
        centerPanel.add(pwdLabel);
        centerPanel.add(pwdField);
        loginBtn.addActionListener(loginHandler);
//        增加按键事件
        loginBtn.addKeyListener(loginHandler);
        centerPanel.add(loginBtn);
        resetBtn.addActionListener(loginHandler);
        centerPanel.add(resetBtn);

//        弹簧布局
        layoutCenter();


        contentPane.add(nameLabel, BorderLayout.NORTH);
        contentPane.add(centerPanel, BorderLayout.CENTER);

        if (SystemTray.isSupported()){
            systemTray=SystemTray.getSystemTray();
            URL resource = LoginView.class.getResource("/自定义图片/1.jpg");
            trayIcon=new TrayIcon(new ImageIcon(resource).getImage());
//            设置托盘大小自动缩放
            trayIcon.setImageAutoSize(true );
            try {
                systemTray.add(trayIcon);
            } catch (AWTException e) {
                e.printStackTrace();
            }
//           增加最小化时销毁资源
            this.addWindowListener(new WindowAdapter() {
                @Override
                public void windowIconified(WindowEvent e) {
                    LoginView.this.dispose();
                }
            });
//           托盘事件监听
            trayIcon.addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    int clickCount = e.getClickCount();
                    if (clickCount==1){
                       LoginView.this.setExtendedState(JFrame.NORMAL);
                    }
                    LoginView.this.setVisible(true);
                }
            });

        }

        URL resource = LoginView.class.getResource("/自定义图片/1.jpg");
        setIconImage(new ImageIcon(resource).getImage());




//  设置默认按钮
        getRootPane().setDefaultButton(loginBtn);

        setLocationRelativeTo(null);
//     关闭退出程序
        setDefaultCloseOperation(EXIT_ON_CLOSE);
//        大小不可改变
        setResizable(false);
        setVisible(true);
        setSize(600, 400);
    }

//    弹簧布局

    private void layoutCenter() {
        //        开始布局userNameLabel
        Spring childWidth = Spring.sum(Spring.sum(Spring.width(userNameLabel), Spring.width(userTxt)), Spring.constant(20));
        int offsetX = childWidth.getValue() / 2;
        springLayout.putConstraint(SpringLayout.WEST,userNameLabel,-offsetX,SpringLayout.HORIZONTAL_CENTER,centerPanel);

        springLayout.putConstraint(SpringLayout.NORTH,userNameLabel,20,SpringLayout.NORTH,centerPanel);
//        userTxt
        springLayout.putConstraint(SpringLayout.WEST,userTxt,20,SpringLayout.EAST,userNameLabel);
        springLayout.putConstraint(SpringLayout.NORTH,userTxt,0,SpringLayout.NORTH,userNameLabel);
//        pwdLabel
        springLayout.putConstraint(SpringLayout.EAST,pwdLabel,0,SpringLayout.EAST,userNameLabel);
        springLayout.putConstraint(SpringLayout.NORTH,pwdLabel,20,SpringLayout.SOUTH,userNameLabel);
//        pwdField
        springLayout.putConstraint(SpringLayout.WEST,pwdField,20,SpringLayout.EAST,userNameLabel);
        springLayout.putConstraint(SpringLayout.NORTH,pwdField,0,SpringLayout.NORTH,pwdLabel);
//        loginBtn
        springLayout.putConstraint(SpringLayout.WEST,loginBtn ,-40,SpringLayout.EAST,userNameLabel);
        springLayout.putConstraint(SpringLayout.NORTH,loginBtn,80,SpringLayout.NORTH,pwdField);
//        resetBtn

        springLayout.putConstraint(SpringLayout.WEST,resetBtn,80,SpringLayout.EAST,loginBtn);
        springLayout.putConstraint(SpringLayout.NORTH,resetBtn,0,SpringLayout.NORTH,loginBtn);
    }

    public static void main(String[] args) {

        new LoginView();
    }

    public JTextField getUserTxt() {
        return userTxt;
    }

    public void setUserTxt(JTextField userTxt) {
        this.userTxt = userTxt;
    }

    public JPasswordField getPwdField() {
        return pwdField;
    }


}



```java
package com;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class LoginHandler extends KeyAdapter implements ActionListener {


    private LoginView loginView;

    public LoginHandler(LoginView loginView) {

        this.loginView=loginView;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        JButton jButton = (JButton) e.getSource();
        String text = jButton.getText();
        if ("重置".equals(text)){
             loginView.getUserTxt().setText("");
             loginView.getPwdField().setText("");
        }else if ("登录".equals(text)){
            login();
        }
    }

    private void login() {
        String user = loginView.getUserTxt().getText();
        char[] chars = loginView.getPwdField().getPassword();
        String pwd = new String(chars);
        System.out.println(user + ":" + pwd);
//            查询db
        boolean flag=false;
        if (flag){
//  验证成功跳转到主界面并且销毁登录界面
        }else {
            JOptionPane.showMessageDialog(loginView,"用户名密码错误");
        }
    }

    @Override
    public void keyPressed(KeyEvent e) {
     
        if (KeyEvent.VK_ENTER == e.getKeyCode()) {
            login();
        }
    }
}

package com;

import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import java.util.Vector;

public class JtableDemo  extends JFrame {


    public JtableDemo() {
      super("测试Jtable");


        Vector<Vector<Object>>  data=new Vector<>();

        Vector<Object> rowVector1=new Vector<>();
        rowVector1.addElement("1");
        rowVector1.addElement("张三");
        rowVector1.addElement("no1");
        rowVector1.addElement("甘肃");
        rowVector1.addElement("1");
        rowVector1.addElement("2");
        rowVector1.addElement("3");
        rowVector1.addElement("6");

        Vector<Object> rowVector2=new Vector<>();
        rowVector2.addElement("1");
        rowVector2.addElement("张三");
        rowVector2.addElement("no1");
        rowVector2.addElement("甘肃");
        rowVector2.addElement("1");
        rowVector2.addElement("2");
        rowVector2.addElement("3");
        rowVector2.addElement("6");

        Vector<Object> rowVector3=new Vector<>();
        rowVector3.addElement("1");
        rowVector3.addElement("张三");
        rowVector3.addElement("no1");
        rowVector3.addElement("甘肃");
        rowVector3.addElement("1");
        rowVector3.addElement("2");
        rowVector3.addElement("3");
        rowVector3.addElement("6");

        data.addElement(rowVector1);
        data.addElement(rowVector2);
        data.addElement(rowVector3);


        StudentTableModel studentTableModel = StudentTableModel.assembleModel(data);


        JTable jTable = new JTable(studentTableModel);

//        设置表头
        JTableHeader tableHeader = jTable.getTableHeader();
        tableHeader.setFont(new Font("华文楷体",Font.BOLD,16));
        tableHeader.setForeground(Color.RED);
//        设置表格体
        jTable.setFont(new Font("华文楷体",Font.BOLD,14));
        jTable.setForeground(Color.black);
        jTable.setGridColor(Color.black);
        jTable.setRowHeight(30);

//        设置多行选择
        jTable.getSelectionModel().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

//        设置表格列的渲染方式
        Vector<String> columns = StudentTableModel.getColumns();

        StudentCellRender render = new StudentCellRender();
        for (int i = 0; i < columns.size(); i++) {
            TableColumn column = jTable.getColumn(columns.get(i));
            column.setCellRenderer(render);
            if (i==0){
                column.setPreferredWidth(50);
                column.setResizable(false);
            }
        }
        




        Container contentPane = getContentPane();

//        jtable放在jpanel上的话,默认是不展示列头的,需要特殊设置 放在jscrollpane上面
//        默认是展示列头的
        JScrollPane jScrollPane=new JScrollPane(jTable);

        contentPane.add(jScrollPane);


        setLocationRelativeTo(null);
//     关闭退出程序
        setDefaultCloseOperation(EXIT_ON_CLOSE);
//        大小不可改变
        setResizable(false);
        setVisible(true);
        setSize(600, 400);
    }


    public static void main(String[] args) {
        new JtableDemo();
    }
}

class StudentCellRender  extends DefaultTableCellRenderer {

//    在每一行的每一列显示之前都会调用


    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {

        if (row %2==0){
            setBackground(Color.LIGHT_GRAY);
        }else {
            setBackground(Color.white);
        }

        setHorizontalAlignment(DefaultTableCellRenderer.CENTER);

        return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
    }
}



//自定义tablemdel
class StudentTableModel extends DefaultTableModel{

     static Vector<String>  columns =new Vector<>();

     static {
         columns.addElement("编号");
         columns.addElement("姓名");
         columns.addElement("学号");
         columns.addElement("语文");
         columns.addElement("数学");
         columns.addElement("英语");
         columns.addElement("总分");

     }

     private StudentTableModel(){
         super(null,columns);
     }

     private static StudentTableModel studentTableModel=new StudentTableModel();

     public static StudentTableModel  assembleModel(Vector<Vector<Object>> data){

         studentTableModel.setDataVector(data,columns);

         return studentTableModel;
     }

    public static Vector<String> getColumns() {
        return columns;
    }

    @Override
    public boolean isCellEditable(int row, int column) {
        return false;
    }
}
package com;

import javax.swing.*;
import java.awt.*;

public class MainView extends JFrame {


    public MainView() {


        JLabel nameLabel = new JLabel("DX 成绩管理中心", JLabel.CENTER);
        Container contentPane = getContentPane();

        setLocationRelativeTo(null);
//     关闭退出程序
        setDefaultCloseOperation(EXIT_ON_CLOSE);
//        大小不可改变
        setResizable(false);
        setVisible(true);
        setSize(600, 400);


    }

    public static void main(String[] args) {
      new MainView();
    }
}

标签:练手,java,public,观看,SpringLayout,import,new,addElement
来源: https://blog.csdn.net/weixin_51455343/article/details/118973507

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有