JAVA Swing 组件演示***

下面是Swing组件的演示:

package a_swing;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.BoundedRangeModel;
import javax.swing.ButtonGroup;
import javax.swing.DefaultListModel;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.JToggleButton;
import javax.swing.JTree;
import javax.swing.Timer;
import javax.swing.border.EtchedBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeSelectionModel;

public class Test extends JFrame {

    public Test() {

        MenuTest menuTest = new MenuTest();

        LeftPanel leftPanel = new LeftPanel();

        RightPanel rightPanel = new RightPanel();

        BottomPanel bottomPanel = new BottomPanel();

        CenterPanel centerPanel = new CenterPanel();

        Container c = this.getContentPane();

        this.setJMenuBar(menuTest);

        c.add(leftPanel, BorderLayout.WEST);

        c.add(rightPanel, BorderLayout.EAST);

        c.add(centerPanel, BorderLayout.CENTER);

        c.add(bottomPanel, BorderLayout.SOUTH);

        this.addWindowListener(new WindowAdapter() {

            public void WindowClosing(WindowEvent e) {

                dispose();

                System.exit(0);

            }

        });

        setSize(700, 500);

        setTitle("Swing 组件大全简体版");

        setUndecorated(true);

        setLocation(200, 150);

        show();

    }

    class MenuTest extends JMenuBar {

        private JDialog aboutDialog;

        public MenuTest() {

            JMenu fileMenu = new JMenu("文件");

            JMenuItem exitMenuItem = new JMenuItem("退出", KeyEvent.VK_E);

            JMenuItem aboutMenuItem = new JMenuItem("关于..", KeyEvent.VK_A);

            fileMenu.add(exitMenuItem);

            fileMenu.add(aboutMenuItem);

            this.add(fileMenu);

            aboutDialog = new JDialog();

            initAboutDialog();

            exitMenuItem.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {

                    dispose();

                    System.exit(0);

                }

            });

            aboutMenuItem.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {

                    aboutDialog.show();

                }

            });

        }

        public JDialog get() {

            return aboutDialog;

        }

        public void initAboutDialog() {

            aboutDialog.setTitle("关于");

            Container con = aboutDialog.getContentPane();

            Icon icon = new ImageIcon("sdmile.gif");

            JLabel aboutLabel = new JLabel("<html><b><font size=5>" + "<center>Swing!" + "<br>", icon, JLabel.CENTER);

            con.add(aboutLabel, BorderLayout.CENTER);

            aboutDialog.setSize(450, 225);

            aboutDialog.setLocation(300, 300);

            aboutDialog.addWindowListener(new WindowAdapter() {

                public void WindowClosing(WindowEvent e) {

                    dispose();

                }

            });

        }

    }

    class LeftPanel extends JPanel {

        private int i = 0;

        public LeftPanel() {

            DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");

            DefaultMutableTreeNode child = new DefaultMutableTreeNode("Child");

            DefaultMutableTreeNode select = new DefaultMutableTreeNode("select");

            DefaultMutableTreeNode child1 = new DefaultMutableTreeNode("" + i);

            root.add(child);

            root.add(select);

            child.add(child1);

            JTree tree = new JTree(root);

            tree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);

            tree.setRowHeight(20);

            tree.addTreeSelectionListener(new TreeSelectionListener() {

                public void valueChanged(TreeSelectionEvent e) {

                    JTree tree = (JTree) e.getSource();

                    DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();

                    i++;

                    selectNode.add(new DefaultMutableTreeNode("" + i));

                }

            });

            tree.setPreferredSize(new Dimension(100, 300));

            JScrollPane scrollPane = new JScrollPane(tree);

            this.add(scrollPane);

        }

    }

    class BottomPanel extends JPanel {

        private JProgressBar pb;

        public BottomPanel() {

            pb = new JProgressBar();

            pb.setPreferredSize(new Dimension(680, 20));

            Timer time = new Timer(1, new ActionListener() {

                int counter = 0;

                public void actionPerformed(ActionEvent e) {

                    counter++;

                    pb.setValue(counter);

                    Timer t = (Timer) e.getSource();

                    if (counter == pb.getMaximum()) {

                        t.stop();

                        counter = 0;

                        t.start();

                    }

                }

            });

            time.start();

            pb.setStringPainted(true);

            pb.setMinimum(0);

            pb.setMaximum(1000);

            pb.setBackground(Color.white);

            pb.setForeground(Color.red);

            this.add(pb);

        }

        public void setProcessBar(BoundedRangeModel rangeModel) {

            pb.setModel(rangeModel);

        }

    }

    class RightPanel extends JPanel {

        public RightPanel() {

            this.setLayout(new GridLayout(8, 1));

            JCheckBox checkBox = new JCheckBox("复选按钮");

            JButton button = new JButton("打开文件");

            button.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {

                    JFileChooser file = new JFileChooser();

                    int resule = file.showOpenDialog(new JPanel());

                    if (resule == file.APPROVE_OPTION) {

                        String fileName = file.getSelectedFile().getName();

                        String dir = file.getSelectedFile().getName();

                        JOptionPane.showConfirmDialog(null, dir + "\\" + fileName, "选择的文件", JOptionPane.YES_OPTION);

                    }

                }

            });

            JToggleButton toggleButton = new JToggleButton("双胎按钮");

            ButtonGroup buttonGroup = new ButtonGroup();

            JRadioButton radioButton1 = new JRadioButton("单选按钮1", false);

            JRadioButton radioButton2 = new JRadioButton("单选按钮2", false);

            JComboBox comboBox = new JComboBox();

            comboBox.setToolTipText("点击下拉列表增加选项");

            comboBox.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {

                    JComboBox comboBox = (JComboBox) e.getSource();

                    comboBox.addItem("程序员");

                    comboBox.addItem("分析员");

                }

            });

            DefaultListModel litem = new DefaultListModel();

            litem.addElement("香蕉");

            litem.addElement("水果");

            JList list = new JList(litem);

            list.addListSelectionListener(new ListSelectionListener() {

                public void valueChanged(ListSelectionEvent e) {

                    JList l = (JList) e.getSource();

                    Object s = l.getSelectedValue();

                    JOptionPane.showMessageDialog(null, s, "消息框", JOptionPane.YES_OPTION);

                }

            });

            buttonGroup.add(radioButton1);

            buttonGroup.add(radioButton2);

            add(button);

            add(toggleButton);

            add(checkBox);

            add(radioButton1);

            add(radioButton2);

            add(comboBox);

            add(list);

            this.setBorder(new EtchedBorder(EtchedBorder.LOWERED, Color.LIGHT_GRAY, Color.blue));

        }

    }

    class CenterPanel extends JPanel {

        public CenterPanel() {

            JTabbedPane tab = new JTabbedPane(JTabbedPane.TOP);

            JTextField textField = new JTextField("文本域,点击打开<文件按钮>可选择文件");

            textField.setActionCommand("textField");

            JTextPane textPane = new JTextPane();

            textPane.setCursor(new Cursor(Cursor.TEXT_CURSOR));

            textPane.setText("编辑器,试着点击文本区,试着拉动分隔条。");

            textPane.addMouseListener(new MouseAdapter() {

                public void mousePressed(MouseEvent e) {

                    JTextPane textPane = (JTextPane) e.getSource();

                    textPane.setText("编辑器点击命令成功");

                }

            });

            JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, textField, textPane);

            JTable table = new JTable(10, 10);

            JPanel pane = new JPanel();

            pane.add(table.getTableHeader(), BorderLayout.NORTH);

            pane.add(table);

            tab.addTab("文本演示", splitPane);

            tab.addTab("表格演示", pane);

            tab.setPreferredSize(new Dimension(500, 600));

            this.add(tab);

            this.setEnabled(true);

        }

    }

    public static void main(String args[]) {

        new Test();

    }

}

演示界面如下:

  

时间: 2024-10-11 00:37:20

JAVA Swing 组件演示***的相关文章

java Swing组件和事件处理(二)

1.BoxLayout类可以创建一个布局对象,成为盒式布局,BoxLayout在javax.Swing  border 包中,java.swing 包提供一个Box类,该类也是一个类,创建的容器称作一个盒式布局,不   允许盒式容器的布局.在策划程序布局的时候,可以利用容器的嵌套,将某个容器嵌入几个盒式容器,达到布局的目的. 使用盒式布局的容器组件将排列一行或一列,这取决于创建盒式布局对象时,是否确定行的排列和列的排列, package com.Example2; import javax.sw

java Swing组件之JSplitPane使用

使用 JSplitPane.HORIZONTAL_SPLIT 可让分隔窗格中的两个 Component 从左到右排列,或者使用 JSplitPane.VERTICAL_SPLIT 使其从上到下排列.改变 Component 大小的首选方式是调用 setDividerLocation,其中 location 是新的 x 或 y 位置,具体取决于 JSplitPane 的方向. 要将 Component 调整到其首选大小,可调用 resetToPreferredSizes. 1.常见构造方法 JSp

java Swing组件随着窗口拖动等比移动或等比放大

实现原理很简单, 1清空布局(使用绝对布局) 2添加监听器(监听窗口是否被拖动) 3在监听器里面动态调整 组件的位置 效果如下: 拖动之后效果: 代码实现: import java.awt.EventQueue; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import javax.swing.JFrame; import javax.swing.JLabel; import java

Java Swing组件JScrollPane

当一个容器内放置了许多组件,而容器的显示区域不足以同时显示所有组件时,如果让容器带滚动条,通过移动滚动条的滑块,容器中位置上的组件就能看到.滚动面板JScrollPane能实现这样的要求,JScrollPane是带有滚动条的面板.JScrollPane是Container类的子类,也是一种容器,但是只能添加一个组件.JScrollPane的一般用法是先将一些组件添加到一个JPanel中,然后再把这个JPanel添加到JScrollPane中.这样,从界面上看,在滚动面板上,好像也有多个组件.在S

java Swing组件和事件处理

1.常见的容器 JComponent是 Container 的子类,中间容器必须添加到底层容器中才能够发挥作用, JPanel 面板 :使用jPanel 创建一个面板,再通过添加组件到该面板上面,JPanel默认的布局方式是FlowLayout JScrollPanel 滑动窗格:  滑动窗格只可以添加一个组件,可以将一个组件放到滑动窗格中,通过滚动条查看,JTextArea不带滚动条可以放到JScrollPanel中. JScorollPanel scroll=new JScorollPane

Java Swing界面编程(3)---标签组件(JLabel)

package com.beyole.util; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Point; import javax.swing.JFrame; import javax.swing.JLabel; public class test2 { public static void main(String[] args) { JFrame frame =

Java Swing界面编程(17)---单行文本输入组件:JTextField

package com.beyole.util; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; public class test15 { public static void main(String[] args) { JFrame frame = new JFrame("Crystal");// 实例化窗

Java Swing界面编程(18)---单行文本输入组件:JTextField

以下的程序与上一例有一点区别,仔细对比不难发现其中的不同之处. package com.beyole.util; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; public class test17 { public static void main(String[] args) { JFrame frame = new JFrame("Crystal"); JT

Java Swing界面编程(19)---密码输入组件:JPasswordField

JTextField是使用明文方式进行数据显示的,如果现在需要将回显的内容设置成其他字符,则可以使用JPasswordField类. package com.beyole.util; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPasswordField; public class test18 { public static void main(String[] args) { JFrame