Java Swing

这里写图片描述

package com.hz.test;

import java.awt.Container;
import java.awt.HeadlessException;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class TestListener extends JFrame {

    private final int width = Toolkit.getDefaultToolkit().getScreenSize().width;
    private final int height = Toolkit.getDefaultToolkit().getScreenSize().height;
    //设置窗口的宽和高
    private final int windowWidth = 430;
    private final int windowHeight = 330;

    JLabel label;
    StringBuilder builder = new StringBuilder();
    public TestListener() throws HeadlessException {

        this.setTitle("登录");
        // 设置窗体位置和大小
        this.setBounds((width - windowWidth) / 2,
                (height - windowHeight) / 2, windowWidth, windowHeight);
        Container container = getContentPane();
        container.setLayout(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//      this.setResizable(false);//设置窗体不可改变大小
        this.setVisible(true);
        label = new JLabel("龙");
        label.setSize(100, 50);
        this.addMouseMotionListener(new MouseAdapter() {
            @Override
            public void mouseMoved(MouseEvent e) {
                super.mouseMoved(e);
                int x = e.getX();
                int y = e.getY();
                label.setLocation(x, y);
                label.setText("x = " + x + " ,Y = " + y);
            }
        });
        this.add(label);
    }


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

这里写图片描述

package com.hz.test;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;

public class JPopMenu_Demo extends JFrame {  

    // 弹出菜单的实现,弹出菜单是一个可弹出并显示一系列选项的小窗口  
    JPopupMenu popupMenu;   

    public JPopMenu_Demo() {  
        super("右键弹出式菜单"); // 调用父类构造函数  
        // 实例化弹出菜单   
        popupMenu = new JPopupMenu();   
        // 增加菜单项到菜单上  
        popupMenu.add(new JMenuItem("菜单项"));  
        popupMenu.add(new JButton("按钮"));   
        popupMenu.add(new JLabel("标签"));  

        myEvents();  

        setSize(350, 300); // 设置窗口大小  
        setLocation(400, 200);  
        setVisible(true); // 设置窗口为可视  
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗口时退出程序  
    }  

    private void myEvents() {  
        // 窗口的鼠标事件处理  
        addMouseListener(new MouseAdapter() {   
            // 点击鼠标  
            public void mousePressed(MouseEvent event) {   
                // 调用triggerEvent方法处理事件  
                triggerEvent(event);   
            }  
            // 释放鼠标  
            public void mouseReleased(MouseEvent event) {   
                triggerEvent(event);  
            }  

            private void triggerEvent(MouseEvent event) { // 处理事件  
                // isPopupTrigger():返回此鼠标事件是否为该平台的弹出菜单触发事件。  
                if (event.isPopupTrigger())   
                    // 显示菜单  
                    popupMenu.show(event.getComponent(), event.getX(),  
                            event.getY());   
            }  
        });  
    }  


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

这里写图片描述

package com.hz.test;

import java.awt.BorderLayout;
import java.awt.HeadlessException;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Vector;

import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.DefaultTableModel;

public class TestTable02 extends JFrame{

    private final int width = Toolkit.getDefaultToolkit().getScreenSize().width;
    private final int height = Toolkit.getDefaultToolkit().getScreenSize().height;
    //设置窗口的宽和高
    private final int windowWidth = 430;
    private final int windowHeight = 350;

    JTable table;
    JScrollPane scrollPane;

    Vector<Vector<String>> data;
    Vector<String> columnNames;

    JButton tianjia,shanchu;
    Box box = Box.createHorizontalBox(); 
    DefaultTableModel dm;   
    public TestTable02() throws HeadlessException {
        window();
        initData();

        dm = new DefaultTableModel(data, columnNames);
        table = new JTable(dm);
        scrollPane = new JScrollPane(table);
        this.add(scrollPane);
        tianjia = new JButton("添加");
        shanchu = new JButton("删除");
        box.add(Box.createHorizontalStrut(130));
        box.add(tianjia);
        box.add(Box.createHorizontalStrut(35));
        box.add(shanchu);
        this.add(box, BorderLayout.SOUTH);
        initTianjia();
    }

    private void initTianjia() {
        tianjia.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {

                Vector<String> dataRow = new Vector<>();
                dataRow.add(66+"");
                dataRow.add("李四");
                dataRow.add("女");
                dataRow.add(20+"");
                dataRow.add("计算机");
                dataRow.add("");
                data.add(dataRow);
                dm.fireTableStructureChanged();
            }
        });
        shanchu.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                int num = dm.getRowCount();
                if(num > 0){
                    dm.removeRow(0);
                    dm.fireTableStructureChanged();
                }

            }
        });
        table.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                int index = table.getSelectedRow();
                dm.removeRow(index);
                dm.fireTableStructureChanged();
            }
        });
    }

    private void initData() {
        columnNames = new Vector<String>();
        columnNames.add("学号");
        columnNames.add("姓名");
        columnNames.add("性别");
        columnNames.add("年龄");
        columnNames.add("专业");
        columnNames.add("备注");


        data = new Vector<Vector<String>>();
        for (int i = 0; i < 20; i++) {
            Vector<String> dataRow = new Vector<>();
            dataRow.add(1 + i + "");
            dataRow.add("张三" + i);
            dataRow.add("男");
            dataRow.add(20 + i + "");
            dataRow.add("计算机");
            dataRow.add("");
            data.add(dataRow);
        } 
    }
    private void window() {
        this.setTitle("表格");
        // 设置窗体位置和大小
        this.setBounds((width - windowWidth) / 2,
                (height - windowHeight) / 2, windowWidth, windowHeight);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setResizable(false);//设置窗体不可改变大小
        this.setVisible(true);

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

这里写图片描述

package com.hz.test;

import java.awt.HeadlessException;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JRootPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;

public class JTreeDemo extends JFrame {

    private final int width = Toolkit.getDefaultToolkit().getScreenSize().width;
    private final int height = Toolkit.getDefaultToolkit().getScreenSize().height;
    //设置窗口的宽和高
    private final int windowWidth = 278;
    private final int windowHeight = 600;
    JTree tree;
    public JTreeDemo() throws HeadlessException {
        window();
        DefaultMutableTreeNode node = new DefaultMutableTreeNode("QQ");
        //子目录
        DefaultMutableTreeNode node_1 = new DefaultMutableTreeNode("好友");
        DefaultMutableTreeNode node_2 = new DefaultMutableTreeNode("亲属");
        DefaultMutableTreeNode node_3 = new DefaultMutableTreeNode("同学");
        node.add(node_1);
        node.add(node_2);
        node.add(node_3);
        //创建好友
        Fridents f1 = new Fridents("张三", 20, 1);
        Fridents f2 = new Fridents("李四", 20, 1);
        Fridents f3 = new Fridents("王五", 20, 1);
        DefaultMutableTreeNode node_1_1 = new DefaultMutableTreeNode(f1);
        DefaultMutableTreeNode node_1_2 = new DefaultMutableTreeNode(f2);
        DefaultMutableTreeNode node_1_3 = new DefaultMutableTreeNode(f3);
        node_1.add(node_1_1);
        node_1.add(node_1_2);
        node_1.add(node_1_3);
        tree = new JTree(node);
        this.add(tree);



        initWindow();
    }
    private void initWindow() {

        /**
         * 选中监听
         */
//      tree.addTreeSelectionListener(new TreeSelectionListener() {
//          
//          @Override
//          public void valueChanged(TreeSelectionEvent e) {
//
//              //获取最后一个选中的Component
//              DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
//              Object obj = treeNode.getUserObject();
//              //判断是否是叶子节点
//              if(treeNode.isLeaf() && obj instanceof Fridents){
//                  Fridents fridents = (Fridents) treeNode.getUserObject();
//                  System.out.println(
//                          fridents.getName() + " " + 
//                                  fridents.getAge() + " " + 
//                                          fridents.getId());
//              }
//              
//          }
//      });

        tree.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {

                TreePath path = tree.getPathForLocation(e.getX(), e.getY());
                DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent();
                Object object = node.getUserObject();
                if(e.getClickCount() == 2 && node.isLeaf() && object instanceof Fridents){
                    Fridents fridents = (Fridents) object;
                    System.out.println(
                            fridents.getName() + " " + 
                                    fridents.getAge() + " " + 
                                            fridents.getId());
                }
            }
        });
    }
    public static void main(String[] args) {
        new JTreeDemo();
    }
    private void window() {
        this.setTitle("树状列表");
        // 设置窗体位置和大小
        this.setBounds((int) ((width - windowWidth)*1.0 / 1.1),
                 ((height - windowHeight) / 9), windowWidth, windowHeight);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setUndecorated(true);//去掉窗口的装饰
        this.getRootPane().setWindowDecorationStyle(JRootPane.WIDTH);
        this.setResizable(false);//设置窗体不可改变大小
        this.setVisible(true);

    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值