下面是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(); } }

演示界面如下:

  

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

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

    1.BoxLayout类可以创建一个布局对象,成为盒式布局,BoxLayout在javax.Swing  border 包中,java.swing 包提供一个Box类,该类也是一个类,创建的容器称作一 ...

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

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

  3. java swing组件的一些基本属性

    JLabel get/setText(): 获取/设置标签的文本. get/seticon(): 获取/设置标签的图片. get/setHorizontalAlignment(): 获取/设置文本的水 ...

  4. java Swing组件和事件处理

    1.常见的容器 JComponent是 Container 的子类,中间容器必须添加到底层容器中才能够发挥作用, JPanel 面板 :使用jPanel 创建一个面板,再通过添加组件到该面板上面,JP ...

  5. Java -- Swing 组件使用

    1. 示例1 public class Main { JFrame f = new JFrame(); Icon okIcon = new ImageIcon("/home/test/sta ...

  6. Java swing: 实现ActionListener监听器的三种途径

    Swing是目前Java中不可缺少的窗口工具组,是用户建立图形化用户界面(GUI)程序的 强大工具.Java Swing组件自动产生各种事件来响应用户行为.如当用户点击按钮或选择菜单项目时,Swing ...

  7. Java AWT组件开发和Swing界面编程

    一.AWT组件开发 1.AWT AWT是抽象窗口工具箱的缩写,它为编写图形用户界面提供了用户接口,通过这个接口就可以继承很多方法,省去了很多工作.AWT还能使应用程序更好地同用户进行交互. AWT中的 ...

  8. java中经常使用的Swing组件总结

    1.按钮(Jbutton) Swing中的按钮是Jbutton,它是javax.swing.AbstracButton类的子类,swing中的按钮可以显示图像,并且可以将按钮设置为窗口的默认图标,而且 ...

  9. learning java swing 基本组件用法

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

随机推荐

  1. java计算两地距离(公里)

    //目标经度,目标纬度,自己经度,自己纬度 public static double getDistance(double lon1, double lat1, double lon2, double ...

  2. cc.Node—场景树

    对于cc.Node我分了四个模块学习: 1.场景树,2.事件响应,3.坐标系统,4.Action的使用:在此记录经验分享给大家. 场景树 1: creator是由一个一个的游戏场景组成,通过代码逻辑来 ...

  3. 大理石在哪儿(Where is the Marble?,Uva 10474)

    现有N个大理石,每个大理石上写了一个非负整数.首先把各数从小到大排序,然后回 答Q个问题.每个问题问是否有一个大理石写着某个整数x,如果是,还要回答哪个大理石上 写着x.排序后的大理石从左到右编号为1 ...

  4. 微信小程序 setData动态修改数据数组的值

    1.问题说明 有一组数据,用来存储图片路径,动态修改图片的路径来上传图片,而小程序JS只能通过事件获取时机和setData方法修改数据来改变view. 而用这样写的方式明显是错误的 2.解决办法 字符 ...

  5. linux的ssh相关指令

    1.安装ssh apt-get install openssh-server 2.备份ssh的配置文件 sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_confi ...

  6. Android jdbc连接mysql报错解决方案 (Communications link failure)

    最近调试安卓连接mysql真是心态爆炸,快两天才搞出来.以下整理一些常见问题. 检查manifest文件里网络权限是否打开 检查数据库IP是否有问题(包括一些沙雕错误,比如是不是在ip首或尾多了个空格 ...

  7. Divide Groups 二分图的判定

    Divide Groups Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  8. UVA 10692 Huge Mod

    Problem X Huge Mod Input: standard input Output: standard output Time Limit: 1 second The operator f ...

  9. hdu 2255KM算法模板

    #include<stdio.h> #include<string.h> #define N  400 #define inf 0x7fffffff int Max(int a ...

  10. 【BZOJ3238】差异(后缀数组,单调栈)

    题意: 思路:显然len(t[i])+len(t[j])这部分的和是一定的 那么问题就在于如何快速求出两两之间lcp之和 考虑将它们排名后用SA可以很方便的求出lcp,且对答案没有影响,因为形式都是数 ...