- 浏览: 139678 次
- 性别:
- 来自: 宁波
文章分类
最新评论
-
每天一首喜欢的歌:
这是用什么软件做的
java仿迅雷下载 -
ma546659141:
厉害
java仿迅雷下载 -
shreo_2007:
完美运行.很强大.很好的学习资源
java仿迅雷下载 -
盖世英雄_1988:
我去,楼主你为什么这么吊,太强大了。。支持楼主,顶顶顶顶。。。 ...
java仿迅雷下载 -
WLLT:
niu 顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶 ...
java仿迅雷下载
import java.awt.BorderLayout; /** * Swing 组件测试程序 * 测试Swing所有组件及其相应的事件 * @author 天翼.李 2003.4.17 晚23:14 * @link http://www.robochina.org * @link robococde@etang.com */ public class SwingTest extends JFrame { /** * 主模块,初始化所有子模块,并设置主框架的相关属性 */ public SwingTest() { // 初始化所有模块 MenuTest menuTest = new MenuTest(); LeftPanel leftPanel = new LeftPanel(); RightPanel rightPanel = new RightPanel(); BottomPanel bottomPanel = new BottomPanel(); CenterPanel centerPanel = new CenterPanel(); // 设置主框架的布局 Container c = this.getContentPane(); // c.setLayout(new BorderLayout()) 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 组件大全简体版"); // 隐藏frame的标题栏,此功暂时关闭,以方便使用window事件 // setUndecorated(true); setLocation(200,150); show(); } //////////////////////////////////////////////////////////////////////////// /** * 菜单栏处理模块 * JMenuBar --+ * --JMenu--+ * --JMenuItem --ActionListener * */ 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 getAboutDialog() { return aboutDialog; } /** * 设置"关于"对话框的外观及响应事件,操作和JFrame一样都是在内容 * 框架上进行的 */ public void initAboutDialog() { aboutDialog.setTitle("关于"); Container con =aboutDialog.getContentPane(); // Swing 中使用html语句 Icon icon = new ImageIcon("smile.gif"); JLabel aboutLabel = new JLabel("<html><b><font size=5>"+ "<center>Swing 组件大全简体版!"+"<br>天翼.李",icon,JLabel.CENTER); //JLabel aboutLabel = new JLabel("Swing 组件大全简体版!",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(); } }); } } //////////////////////////////////////////////////////////////////////////// /** * 最左边模块,继承JPanel,初始化内容为JTree * JPanel--+ * --JTree */ 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) { // 内隐类不能直接引用外部类tree,1.外部变量可申明为final 2.新建外部类的对象 JTree tree =(JTree)e.getSource(); DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent(); i++; selectNode.add(new DefaultMutableTreeNode(""+i)); } }); tree.setPreferredSize(new Dimension(100,300)); // tree.setEnabled(true); JScrollPane scrollPane = new JScrollPane(tree); //scrollPane.setSize(100,350); this.add(scrollPane); } } //////////////////////////////////////////////////////////////////////////// /** * 最下面层模块,继承JPanel,初始化内容为进度条,并由定时器控制 * JPanel--+ * --JProcessBar --Timer */ 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); } } //////////////////////////////////////////////////////////////////////////// /** * 最右边模块,继承JPanel,初始化各种按钮 * JPanel--+ * --JButton --JToggleButton -- JList -- JCombox --JCheckBox .... */ 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 result = file.showOpenDialog(new JPanel()); if (result ==file.APPROVE_OPTION) { String fileName = file.getSelectedFile().getName(); String dir = file.getCurrentDirectory().toString(); 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); // 增加各种按钮到JPanel中显示 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)); } } //////////////////////////////////////////////////////////////////////////// /** * 中间层模块,继承JPanel,初始化页签,并在页签中设置文本区,表格, * 文本区上下用分隔条分隔 * JPanel--+ * -JTabbedPane--+ * --Draw --JTable -JTextAreas -JText --JPopupMenu */ 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("编辑器点击命令成功"); // textField.setText(""+textPane.getText()); } }); /* UpperCaseDocument doc = new Document(); textField.setDocumentsetDocument(doc); doc.addDocumentListener(new DocumentListener() { public void changedUpdate(DocumentEvent e){} public void removeUpdate(DocumentEvent e){} public void insertUpdate(DocumentEvent e) { Document text = (Document)e.getDocument(); text.setText("复制成功"); } }); */ JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,textField,textPane); JTable table = new JTable(10,10); //table.showHorizontalLines(true); //table.showVerticalLines(true); //table.gridColor(Color.blue); JPanel pane = new JPanel(); pane.add(table.getTableHeader(),BorderLayout.NORTH); pane.add(table); tab.addTab("文本演示",splitPane); //tab.addTab(table.getTableHeader()); tab.addTab("表格演示",pane); tab.setPreferredSize(new Dimension(500,600)); this.add(tab); this.setEnabled(true); } } public static void main(String args[]) { // 设置主框架属性,此处没有使用,可打开看看效果 //try //{ // UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); //} //catch (Exception e){} try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); // UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.MotifLookAndFeel"); // SynthLookAndFeel synth = new SynthLookAndFeel(); // synth.load(SwingTest.class.getResourceAsStream("demo.xml"), SwingTest.class); // UIManager.setLookAndFeel(synth); } catch (UnsupportedLookAndFeelException e) { // handle exception } catch (ClassNotFoundException e) { // handle exception } catch (InstantiationException e) { // handle exception } catch (IllegalAccessException e) { // handle exception } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } new SwingTest(); } }
发表评论
文章已被作者锁定,不允许评论。
-
swt table 自己造个轮子
2013-04-05 15:28 1156半年前的代码了,swt自带的table 感觉不是很漂亮,就 ... -
java仿迅雷下载
2012-04-22 21:07 10325package org.crazyit.fla ... -
java实现阿里旺旺界面
2012-04-22 17:02 3028package com.topthinking.exing ... -
java实现透明窗体
2012-04-22 17:04 4188package free; import j ... -
java实现tab可关闭(chrome风格)
2012-04-22 17:05 4095* @author zhangtao packa ... -
java实现http代理服务
2012-04-22 17:03 22255package httpProxy; /***** ... -
设置可关闭的tab
2012-04-21 14:01 4355package demo.swing; imp ... -
java实现千千静听界面
2012-04-21 14:00 1645package com.tianlong.TTPla ... -
java渲染水晶按钮
2012-04-21 13:59 3206import java.awt.Color; ... -
Java获取系统软件安装列表
2012-04-21 13:58 3764/** * @author < ...
相关推荐
1. **组件树视图**:Swing Explorer提供了一个直观的组件树视图,显示了应用程序中的所有Swing组件及其层次结构。开发者可以通过这个视图查看每个组件的属性、事件监听器以及布局管理器,方便调整和优化UI设计。 2....
4. **交互处理**:当Swing组件接收到用户操作的事件时,可以调用由Spring管理的Bean的方法来处理业务逻辑。这通常涉及到数据的验证、数据库操作等。 5. **事务管理**:如果应用涉及到数据库操作,Spring的事务管理...
例如,我们可以通过配置XML文件或使用注解来定义bean,然后在Swing组件中注入这些bean,以便在GUI事件处理中使用它们。这样做可以将界面代码与业务逻辑分离,提高代码的可测试性和可维护性。 接下来,让我们探讨...
当用户与Swing组件交互时,如点击按钮或输入文本,这些交互会生成相应的事件并放入`EventQueue`。事件处理遵循先进先出(FIFO)的原则,即最早的事件先被处理。 Swing是单线程模型,这意味着所有的UI更新都必须在...
2. **Swing组件**:开发者需要熟练使用JComponent及其子类,例如JFrame、JPanel、JButton等,来构建用户界面。每个组件都有自己的属性和方法,可以通过这些来定制界面的外观和行为。 3. **事件监听**:Swing支持...
3. **事件驱动编程**: Swing是事件驱动的,当用户与界面元素进行交互时(如点击按钮),会产生相应的事件。开发者需要注册事件监听器来处理这些事件,从而实现对用户输入的响应。 4. **数据库连接与JDBC**: 酒店...
这个描述暗示了系统是通过Java的Swing组件来设计用户友好的界面,使得用户能够方便地进行添加、删除、修改和查询学生信息。同时,JDBC作为Java与数据库通信的桥梁,负责执行SQL语句,实现数据的存储和检索。这样的...
界面则选用Swing组件库构建了一个图形化的交互环境。 适合人群:具备Java基础知识的学生或开发者。 使用场景及目标:适用于初学者练习JavaSE技能的应用开发,特别对于熟悉桌面应用程序的设计模式有很大帮助;同时也...
9. **事件监听**:Swing组件支持事件监听,如按钮点击、文本框输入等。开发者可以注册事件监听器,当特定事件发生时执行相应的操作。例如,添加学生的按钮可能有一个ActionListener,监听点击事件并调用添加学生的...
Swing组件包括按钮、文本框、面板、菜单等,可自定义样式,支持事件处理和模型-视图-控制器(MVC)设计模式。在汽车租赁管理系统中,Swing用于创建预订、查询、修改和删除车辆等操作的界面。 **MySQL** MySQL是一个...
下面将详细探讨窗口效果显示组件的核心知识点及其应用。 1. **窗口动画效果**:窗口效果显示组件的核心在于动画设计,这些动画可以使窗口在打开、关闭、最大化、最小化或改变大小时呈现出平滑的过渡效果。例如,...
通过对以上内容的总结,我们不仅了解了 BMI 计算的基本原理及其对人体健康的影响,还深入学习了 Java AWT 和 Swing 库的基础用法以及如何使用这些库来开发简单的 Applet 应用。这对于初学者来说是非常有用的实践经验...
- **组件库**:了解Swing组件库中的各种组件,如文本框、按钮、标签等,并熟悉它们的基本属性和事件处理机制。 - **布局管理器**:掌握不同类型的LayoutManager及其适用场景,以便根据具体需求选择合适的布局策略。 ...
在Java编程语言中,"MouseFrame.class"是一个与图形用户界面...通过对`MouseFrame`、`MouseComponent`及其内部监听器类的理解和实践,开发者能够更好地掌握Java Swing框架中的事件处理机制,从而提高应用的用户体验。
3. **事件处理**:为了实现交互性,可以为每个日期标签添加鼠标监听器,当用户点击某一天时,可以触发相应的事件,比如显示该日期的详细信息。 4. **格式化显示**:为了让日历看起来更像一个真实的日历,我们可以...
自定义控件通常继承自Java Swing或JavaFX中的基本组件类,并通过重写其方法来扩展功能和改变外观。 1. **继承基础组件**:在Java Swing中,我们通常会继承JComponent类,或者如果需要图形绘制能力,继承自JPanel。...
在Java Swing库中,`JTable`是用于展示表格数据的重要组件。为了处理与表格相关的动态更新、用户交互和其他事件,我们需要理解`TableModel`和它的事件处理机制。本示例"Table-model-events.zip_Table"专注于演示`...
Java课程表小测试是针对Java编程语言开发的一个小型应用程序,主要目标是实现一个基础的课程管理功能。这个项目可能是为了教学目的或者个人实践,目的是帮助初学者更好地理解和应用Java编程知识,尤其是面向对象的...