- 浏览: 65078 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
real_yqdt:
...
关于Java thread的Interrupt, isInterrupt, interrupted -
二当家的:
while需要写在try里面
关于Java thread的Interrupt, isInterrupt, interrupted -
sampras87:
mojunbin 写道
public void run() { ...
关于Java thread的Interrupt, isInterrupt, interrupted -
boaixiaohai:
mojunbin 写道
public void run() { ...
关于Java thread的Interrupt, isInterrupt, interrupted -
sp42:
学习了,谢谢!
巧妙的位运算及模运算
从http://www.hackhome.com/InfoView/Article_119037_3.html转过来的,估计这个页面也是转的……汗……怎样也好,先感谢作者
import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.tree.*; import javax.swing.event.*; import javax.swing.border.*; import javax.swing.table.*; /** * 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){} new SwingTest(); } }
发表评论
-
Ganymed Study
2012-07-19 00:54 8511. Website http://www.gany ... -
Netty Study
2012-05-07 19:04 785Let -
FilteredFilesGenerator
2012-01-02 20:58 0A tool to generate some fileted ... -
abc
2011-11-17 22:47 0姓名 性别 上次党费缴纳至 本次党费缴纳至 计算 月份 ... -
巧妙的位运算及模运算
2010-12-29 15:02 1866原帖:http://www.lgsee.com/?p= ... -
diff tool
2010-04-13 22:52 926package processor; public cl ... -
关于Java thread的Interrupt, isInterrupt, interrupted
2009-12-26 00:58 10230在《Java网络编程》上看到一个例子, 说是用thread.i ... -
在UltraEdit的查找和替换中使用正则表达式 (转)
2009-08-12 14:22 930转自http://baizheng.iteye.com/blo ... -
String相关算法
2009-08-10 00:38 1791最近在研究一些字符串的算法,准备做一个diff的小工具 首先第 ... -
java--swing在文本框显示某txt文件内容..
2009-05-04 16:53 6874从http://qzone.qq.com/blog/12082 ... -
动手实践制作双击运行jar包
2009-05-03 14:43 2288这几天帮大学同学的女朋友做了一个毕业设计 , 是一个什么什么库 ... -
JAR文件包及jar命令详解
2009-05-03 00:58 822引用JAR文件包及jar命令 ...
相关推荐
Java Swing 组件全演示源代码-Java Swing components entire demo source code
总的来说,这个压缩包提供了一个全面的Java Swing组件演示,涵盖了组件的使用、布局管理和事件处理等方面,是学习和理解Swing GUI编程的宝贵资源。通过深入研究`SwingTest.java`源代码,开发者可以掌握如何使用Swing...
本资源“Java Swing 组件全演示源代码”包含了Java Swing中的各种组件的完整示例代码,可以帮助开发者深入理解和实际操作这些组件,提升GUI编程能力。 Swing 提供了大量的组件,包括基础组件如按钮(JButton)、...
总之,“Swing全组件演示”项目为Java GUI开发提供了一个宝贵的实践平台,无论是初学者还是有经验的开发者,都能从中受益。通过深入研究这个项目,我们可以提高自己在Swing和GUI编程方面的技能,为构建高效、美观的...
本教程将深入探讨Swing组件的实例应用,帮助开发者更好地理解和掌握Swing在实际编程中的运用。 一、Swing组件基础 Swing组件主要由JComponent类及其子类构成,包括按钮(JButton)、文本框(JTextField)、标签...
Swing组件的一大优点是它们是轻量级的,这意味着它们完全由Java代码实现,而不是依赖于操作系统提供的底层图形支持,这使得Swing应用具有跨平台的特性。 首先,Swing提供了丰富的组件库,包括JButton、JLabel、...
基于JavaSwing组件实现的拼图小游戏源码+项目说明.zip基于JavaSwing组件实现的拼图小游戏源码+项目说明.zip基于JavaSwing组件实现的拼图小游戏源码+项目说明.zip 基于JavaSwing组件的拼图游戏 主要运用GUI设计,使用...
本资源“java swing所有组件展示”包含了对Swing组件的全面展示,这对于学习和理解Swing的各种功能至关重要。 Swing组件是轻量级的,意味着它们不依赖于操作系统底层的图形支持,而是完全由Java实现。这使得Swing...
Swing组件基于Java AWT(Abstract Window Toolkit),但提供了更多的特性和更好的跨平台兼容性。Swing组件包括按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)、滚动窗格( JScrollPane)...
Swing组件包括但不限于: 1. JFrame:这是Swing中的顶级容器,通常作为应用程序的主窗口。你可以在这个框架内添加其他组件。 2. JPanel:这是可嵌套的容器,用于组织和管理其他组件。通过设置布局管理器,可以决定...
Java Swing 是Java GUI(图形用户界面)开发的一个重要框架,它是Java Foundation Classes (JFC) 的一部分,提供了丰富的组件和事件处理机制,用于构建桌面应用。在这个“Java Swing 简单的员工管理系统”中,开发者...
Java Foundation Classes (JFC)是Swing的总称,包括Swing组件以及其他辅助库。它提供了丰富的功能,如图表、表(JTable)、树(JTree)等,方便开发复杂的桌面应用。 10. **Swing应用框架** Swing还提供了一些...
这个“JavaSwing帮助文档”是专为学习和深入理解Swing而设计的一份详细教程,无论你是Java GUI编程的新手还是有一定经验的开发者,都能从中受益。 Swing 提供了一组组件,这些组件可以构建出功能丰富的、美观的窗口...
4. **刷新组件**:设置完主题后,需要刷新所有Swing组件以应用新的外观。这可以通过`SwingUtilities.updateComponentTreeUI(rootComponent)`完成,其中`rootComponent`是你的应用程序主窗口。 除了这些基础操作,...
1. **CompsDemo.java**:这个文件可能包含了Swing组件的演示,如JButton、JLabel、JTextArea等。它通常会展示如何创建和添加这些组件到JFrame中,以及如何处理用户的交互事件。 2. **Authenticator.java**:在Java...
在本项目中,“数据结构链表演示(java swing)”利用了Java Swing库来创建一个图形用户界面(GUI),直观地展示链表和堆栈的操作。 Java Swing是Java AWT(Abstract Window Toolkit)的一个扩展,提供了丰富的组件...
【Java课程设计---javaswing带GUI界面学生管理系统】是一个基于Java Swing开发的桌面应用程序,它为用户提供了图形用户界面(GUI)来管理学生信息。这个项目的核心目标是实现一个简单易用的学生信息管理系统,利用...
在这个“JavaSwing进程调度课程设计”项目中,学生或开发者使用Java Swing构建了一个用户友好的界面,以模拟和演示操作系统中的三种经典进程调度算法:先来先服务(FCFS)、优先级调度和时间片轮转。 首先,让我们...
与AWT(Abstract Window Toolkit)相比,Swing组件是轻量级的,基于Java而不是操作系统底层,因此具有更好的跨平台兼容性。 2. **鼠标事件处理**: 在Swing中,我们可以使用`MouseListener`或`MouseMotionListener`...