- 浏览: 212972 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (124)
- 一段耗CPU的随机生成字符串的代码,why? (1)
- 生活如何才能不匆忙? (1)
- Null Object设计模式 (1)
- 珍爱生命,远离java (1)
- Oracle强杀进程,解决表锁死等问题 (1)
- java发送消息到RTX提醒 (1)
- 以HTTP形式获取图片流并写入另一个图片 (1)
- struts2获取Session和request方法 (1)
- 洛克菲勒.第一封:起点不决定终点 (1)
- tomcat的OutOfMemoryError解决方法 (1)
- REST和SOAP:谁更好,或者都好? (1)
- 35款免费的Javascript、Flash Web图表组件 (1)
- 盘点:三十五个非主流开源数据库 (1)
- Lucene并发连接实现 - ConcurrentLuceneConnection (1)
- 能大大提升工作效率和时间效率的9个重要习惯 (1)
- 读周鸿祎的《乔布斯的拿来主义》后感 (1)
- 表变量与临时表的优缺点 (1)
- Visual C++线程同步技术剖析 (转载) (1)
- 海量数据处理专题1——Bloom Filter (1)
- 海量数据处理专题2——Hash (1)
- 海量数据处理专题3——Bit-map (1)
- 海量数据处理专题4——堆 (1)
- 海量数据处理专题5——双层桶划分 (1)
- 海量数据处理专题6——数据库索引及优化 (1)
- 海量数据处理专题7——倒排索引(搜索引擎之基石) (1)
- 如何让优化你在搜索引擎上的形象 (1)
- 20个专业的SEO网站分析工具 (1)
- 杯具了,武汉开出国内首张个人网店税单:征税430余万 (1)
- java关键字的实现原理 (1)
- 关于Class类的成员函数与Java反射机制,坦言Synchronize的本质 (1)
- iBATIS的一对多关联查询 (1)
- 详解spring 依赖注入的作用 (1)
- 为什么要用JSP做显示而不用servlet? (1)
- 解决:java webservice调用net 参数返回NULL (1)
- Lucene搜索 关键字高亮 (1)
- Java常用类 Object类简单用法和深入 (1)
- 我在上海奋斗五年 从月薪3500到700万 (1)
- 每个Java初学者都应该搞懂的六个问题 (1)
- 强 奸数据库就这八步! (0)
- 数据库就这八步! (1)
- 什么才是最好处理中文方法 (1)
- JS实现简单的ajax访问Struts2的action类 (1)
- 跨域终极解决办法 (1)
- 由Map的复制问题引发对深复制和浅复制的思考 (1)
- Object类型转换为String类型的两种方式 (1)
- 写Java程序的三十个基本规则 (1)
- java计算时间差及某个时间段数据 (1)
- 推荐10个Java开源CMS系统 (1)
- 折半插入排序java实现 (1)
- 什么是程序员的优秀品质? (1)
- JDK Proxy AOP实现 (1)
- Java的最优化内存管理 (1)
- 100个Java经典例子 (1)
- java多态反射机制例子 (1)
- hashCode与equals的区别与联系 (1)
- 软件公司如何才能留住员工 (1)
- Java模拟操作系统进程调度算法—先来先服务、短作业优先、高响比优先 (1)
- 抛砖引玉 教你如何成为一名Java初级程序员 (1)
- 是什么成就了一名“高级”程序员? (1)
- 10分钟教会你Apache Shiro (1)
- Lucene排序 Payload的应用 (1)
- Lucene3.0之结果排序 (1)
- synchronized和java.util.concurrent.locks.Lock的异同 (1)
- 如何把Object对象转换为XML (1)
- 大流量网站的底层系统架构 (1)
- 程序员应该知道的100个vim命令 (1)
- 小编辑 Java 6 JVM参数选项大全(中文版) (1)
- 使用 Java Native Interface 的最佳实践 (1)
- 您适合从事Web前端开发行业吗? (1)
- 一个当了爹的程序员的自白 (1)
- Hibernate中设置MySQL的中文编码 (1)
- 雅虎声明称董事会运转良好 杨致远无需辞职 (1)
- IBM开源Java语言变种NetRexx (1)
- Tomcat VS Jetty (1)
- 正版office 2007 简体中文专业版(附正版序列号)高速下载正版office 2007 简体中文专业版 (1)
- java程序员应该知道的两种引用 (1)
- 基于Oracle 分布式数据库的查询优化 (1)
- JAVA设计模式 (1)
- java高并发-静态页面生成方案(1) (1)
- 程序员和编码员之间的区别 (1)
- 看看美国是如何解决开发人员的缺陷的 (1)
- ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener (1)
- 开发模式 (0)
最新评论
-
泛黄秋颜:
大神你好,我最近在做云显示,奈何就是不会,能不能麻烦您发我一份 ...
Java实现标签云 -
Zhang_amao:
我的QQ邮箱1101232017@qq.com
Java实现标签云 -
Zhang_amao:
您好, 我现在也在研究这一领域,特别需要java版本来生成中文 ...
Java实现标签云 -
moon198654:
Technoboy 写道引用
总结
本文介绍了目前 Java ...
Tomcat VS Jetty -
mengxiangzhou:
dfvdf
Java模拟操作系统进程调度算法—先来先服务、短作业优先、高响比优先
- package test11;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.KeyEvent;
- import javax.swing.AbstractButton;
- import javax.swing.ImageIcon;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- /**
- * Title: 按钮演示
- * Description: 提供一个按钮的演示。如何实现按钮和是一个按钮失效
- * Filename:
- */
- public class ButtonDemo extends JPanel
- implements ActionListener {
- private static final long serialVersionUID = 1L;
- protected JButton b1, b2, b3;
- /**
- *方法说明:构造器,初始图形界面构建
- */
- public ButtonDemo() {
- ImageIcon leftButtonIcon = createImageIcon("images/right.gif" );
- ImageIcon middleButtonIcon = createImageIcon("images/middle.gif" );
- ImageIcon rightButtonIcon = createImageIcon("images/left.gif" );
- b1 = new JButton( "失效中间按钮(D)" , leftButtonIcon);
- b1.setVerticalTextPosition(AbstractButton.CENTER);//水平中间对齐
- b1.setHorizontalTextPosition(AbstractButton.LEADING);//相当于LEFT
- b1.setMnemonic(KeyEvent.VK_D);//将b1邦定alt+D键
- b1.setActionCommand("disable" );
- b2 = new JButton( "M中间按钮" , middleButtonIcon);
- b2.setVerticalTextPosition(AbstractButton.BOTTOM);
- b2.setHorizontalTextPosition(AbstractButton.CENTER);
- b2.setMnemonic(KeyEvent.VK_M);//将b2邦定alt+M键
- b3 = new JButton( "E激活中间按钮" , rightButtonIcon);
- b3.setMnemonic(KeyEvent.VK_E);//将b3邦定alt+E键
- b3.setActionCommand("enable" );
- b3.setEnabled(false );
- //给1和3添加事件监听
- b1.addActionListener(this );
- b3.addActionListener(this );
- //设置按钮提示文本
- b1.setToolTipText("点击这个按钮,将使中间的按钮失效!" );
- b2.setToolTipText("点击这个按钮,没有任何的事件发生!" );
- b3.setToolTipText("点击这个按钮,将使中间的按钮有效" );
- //将按钮添加到JPanel中
- add(b1);
- add(b2);
- add(b3);
- }
- /**
- *方法说明:事件处理
- */
- public void actionPerformed(ActionEvent e) {
- if ( "disable" .equals(e.getActionCommand())) {
- b2.setEnabled(false );
- b1.setEnabled(false );
- b3.setEnabled(true );
- } else {
- b2.setEnabled(true );
- b1.setEnabled(true );
- b3.setEnabled(false );
- }
- }
- /**
- *方法说明:创建图标,
- *输入参数:String path 图标所在的路径
- *返回类型:ImageIcon 图标对象
- */
- protected static ImageIcon createImageIcon(String path) {
- java.net.URL imgURL = ButtonDemo.class .getResource(path);
- if (imgURL != null ) {
- return new ImageIcon(imgURL);
- } else {
- System.err.println("Couldn't find file: " + path);
- return null ;
- }
- }
- /**
- *方法说明:主方法
- */
- public static void main(String[] args) {
- //设置使用新的swing界面
- JFrame.setDefaultLookAndFeelDecorated(true );
- //创建一个窗体
- JFrame frame = new JFrame( "ButtonDemo" );
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- //创建一个面板
- ButtonDemo newContentPane = new ButtonDemo();
- newContentPane.setOpaque(true );
- frame.setContentPane(newContentPane);
- //显示窗体
- frame.pack();
- frame.setVisible(true );
- }
- }
- package test12;
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.*;
- /**
- * Title: 检查盒演示
- * Description: 选择不同的选择框显示不同的图片
- * Filename: CheckBoxDemo.java<
- */
- public class CheckBoxDemo extends JPanel
- implements ItemListener {
- private static final long serialVersionUID = 1L;
- JCheckBox chinButton;
- JCheckBox glassesButton;
- JCheckBox hairButton;
- JCheckBox teethButton;
- /*
- * 有四个检查盒,分别对应下巴、眼镜、头发和牙齿
- * 图片不是拼出来的,而是根据检查盒选择拼写图片文件名
- * 图片文件名的定义格式为"geek-XXXX.gif"
- * 其中 XXXX 根据检查盒的不同选择,而不同。它的格式如下:
- ---- //没有选择
- c--- //一个选择
- -g--
- --h-
- ---t
- cg-- //两个选择
- c-h-
- c--t
- -gh-
- -g-t
- --ht
- -ght //三个选择
- c-ht
- cg-t
- cgh-
- cght //所有都选
- */
- StringBuffer choices;
- JLabel pictureLabel;
- public CheckBoxDemo() {
- super ( new BorderLayout());
- //创建检查盒
- chinButton = new JCheckBox( "下巴(c)" );
- chinButton.setMnemonic(KeyEvent.VK_C);
- chinButton.setSelected(true );
- glassesButton = new JCheckBox( "眼镜(g)" );
- glassesButton.setMnemonic(KeyEvent.VK_G);
- glassesButton.setSelected(true );
- hairButton = new JCheckBox( "头发(h)" );
- hairButton.setMnemonic(KeyEvent.VK_H);
- hairButton.setSelected(true );
- teethButton = new JCheckBox( "牙齿(t)" );
- teethButton.setMnemonic(KeyEvent.VK_T);
- teethButton.setSelected(true );
- //给检查盒添加监听
- chinButton.addItemListener(this );
- glassesButton.addItemListener(this );
- hairButton.addItemListener(this );
- teethButton.addItemListener(this );
- choices = new StringBuffer( "cght" );
- //放置一个带图片的标签
- pictureLabel = new JLabel();
- pictureLabel.setFont(pictureLabel.getFont().deriveFont(Font.ITALIC));
- updatePicture();
- //将检查盒放置到面版中
- JPanel checkPanel = new JPanel( new GridLayout( 0 , 1 ));
- checkPanel.add(chinButton);
- checkPanel.add(glassesButton);
- checkPanel.add(hairButton);
- checkPanel.add(teethButton);
- add(checkPanel, BorderLayout.LINE_START);
- add(pictureLabel, BorderLayout.CENTER);
- setBorder(BorderFactory.createEmptyBorder(20 , 20 , 20 , 20 ));
- }
- /**
- *<br>方法说明:监听检查盒事件,拼凑图片的文件名XXXX部分
- *<br>输入参数:
- *<br>返回类型:
- */
- public void itemStateChanged(ItemEvent e) {
- int index = 0 ;
- char c = '-' ;
- Object source = e.getItemSelectable();
- if (source == chinButton) {
- index = 0 ;
- c = 'c' ;
- } else if (source == glassesButton) {
- index = 1 ;
- c = 'g' ;
- } else if (source == hairButton) {
- index = 2 ;
- c = 'h' ;
- } else if (source == teethButton) {
- index = 3 ;
- c = 't' ;
- }
- //取消选择事件
- if (e.getStateChange() == ItemEvent.DESELECTED) {
- c = '-' ;
- }
- //改变文件名字XXXX
- choices.setCharAt(index, c);
- updatePicture();
- }
- /**
- *<br>方法说明:绘制图片
- *<br>输入参数:
- *<br>返回类型:
- */
- protected void updatePicture() {
- //将得到的图片制成图标
- ImageIcon icon = createImageIcon(
- "images/geek/geek-"
- + choices.toString()
- + ".gif" );
- pictureLabel.setIcon(icon);
- pictureLabel.setToolTipText(choices.toString());
- if (icon == null ) {
- pictureLabel.setText("没有发现图片" );
- } else {
- pictureLabel.setText(null );
- }
- }
- /**
- *<br>方法说明:获取图标
- *<br>输入参数:String path 图片路径
- *<br>返回类型:ImageIcon对象
- */
- protected static ImageIcon createImageIcon(String path) {
- java.net.URL imgURL = CheckBoxDemo.class .getResource(path);
- if (imgURL != null ) {
- return new ImageIcon(imgURL);
- } else {
- System.err.println("Couldn't find file: " + path);
- return null ;
- }
- }
- /**
- *<br>方法说明:主方法
- *<br>输入参数:
- *<br>返回类型:
- */
- public static void main(String s[]) {
- JFrame.setDefaultLookAndFeelDecorated(true );
- //创建一个窗体,
- JFrame frame = new JFrame( "CheckBoxDemo" );
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- //创建一个面板
- JComponent newContentPane = new CheckBoxDemo();
- newContentPane.setOpaque(true );
- frame.setContentPane(newContentPane);
- //显示窗体
- frame.pack();
- frame.setVisible(true );
- }
- }
- package test13;
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.*;
- import java.util.*;
- import java.text.SimpleDateFormat;
- /**
- * Title: ComboBox下拉域演示</p>
- * Description: 通过选择或这输入一种日期格式来格式化今天的日期
- * Filename: ComboBoxDemo.java
- */
- public class ComboBoxDemo extends JPanel
- implements ActionListener {
- private static final long serialVersionUID = 1L;
- static JFrame frame;
- JLabel result;
- String currentPattern;
- /**
- *方法说明:构造器。初始化窗体构件
- */
- public ComboBoxDemo() {
- setLayout(new BoxLayout( this , BoxLayout.PAGE_AXIS));
- String[] patternExamples = {
- "dd MMMMM yyyy" ,
- "dd.MM.yy" ,
- "MM/dd/yy" ,
- "yyyy.MM.dd G 'at' hh:mm:ss z" ,
- "EEE, MMM d, ''yy" ,
- "h:mm a" ,
- "H:mm:ss:SSS" ,
- "K:mm a,z" ,
- "yyyy.MMMMM.dd GGG hh:mm aaa"
- };
- currentPattern = patternExamples[0 ];
- //设置一个规范的用户界面
- JLabel patternLabel1 = new JLabel( "输入一个字符格式或者" );
- JLabel patternLabel2 = new JLabel( "从下拉列表中选择一种:" );
- JComboBox patternList = new JComboBox(patternExamples);
- patternList.setEditable(true ); //标注这里ComboBox可进行编辑
- patternList.addActionListener(this );
- //创建一个显示结果用户界面
- JLabel resultLabel = new JLabel( "当前 日期/时间" ,
- JLabel.LEADING);//相当于LEFT
- result = new JLabel( " " );
- result.setForeground(Color.black);
- result.setBorder(BorderFactory.createCompoundBorder(
- BorderFactory.createLineBorder(Color.black),
- BorderFactory.createEmptyBorder(5 , 5 , 5 , 5 )
- ));
- //布置构件
- JPanel patternPanel = new JPanel();
- patternPanel.setLayout(new BoxLayout(patternPanel,
- BoxLayout.PAGE_AXIS));
- patternPanel.add(patternLabel1);
- patternPanel.add(patternLabel2);
- patternList.setAlignmentX(Component.LEFT_ALIGNMENT);
- patternPanel.add(patternList);
- JPanel resultPanel = new JPanel( new GridLayout( 0 , 1 ));
- resultPanel.add(resultLabel);
- resultPanel.add(result);
- patternPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
- resultPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
- add(patternPanel);
- add(Box.createRigidArea(new Dimension( 0 , 10 )));
- add(resultPanel);
- setBorder(BorderFactory.createEmptyBorder(10 , 10 , 10 , 10 ));
- reformat();
- }
- /**
- *方法说明:事件处理
- */
- public void actionPerformed(ActionEvent e) {
- JComboBox cb = (JComboBox)e.getSource();
- String newSelection = (String)cb.getSelectedItem();
- currentPattern = newSelection;
- reformat();
- }
- /**
- *方法说明:格式和显示今天的日期
- */
- public void reformat() {
- Date today = new Date();
- SimpleDateFormat formatter =
- new SimpleDateFormat(currentPattern);
- try {
- String dateString = formatter.format(today);
- result.setForeground(Color.black);
- result.setText(dateString);
- } catch (IllegalArgumentException iae) {
- result.setForeground(Color.red);
- result.setText("Error: " + iae.getMessage());
- }
- }
- /**
- *方法说明:主方法
- */
- public static void main(String[] args) {
- JFrame.setDefaultLookAndFeelDecorated(true );
- //创建一个窗体
- frame = new JFrame( "ComboBoxDemo" );
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- //创建一个面版容器
- JComponent newContentPane = new ComboBoxDemo();
- newContentPane.setOpaque(true );
- frame.setContentPane(newContentPane);
- //显示窗体
- frame.pack();
- frame.setVisible(true );
- }
- }
- package test14;
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.*;
- import javax.swing.event.*;
- /**
- * Title: 列表框
- * Description: 通过输入框添加元素和点击“删除”按钮删除列表元素
- * Filename: ListDemo.java
- */
- public class ListDemo extends JPanel
- implements ListSelectionListener {
- private static final long serialVersionUID = 1L;
- private JList list;
- private DefaultListModel listModel;
- private static final String hireString = "添加" ;
- private static final String fireString = "删除" ;
- private JButton fireButton;
- private JTextField employeeName;
- public ListDemo() {
- super ( new BorderLayout());
- //构建List的列表元素
- listModel = new DefaultListModel();
- listModel.addElement("Alan Sommerer" );
- listModel.addElement("Alison Huml" );
- listModel.addElement("Kathy Walrath" );
- listModel.addElement("Lisa Friendly" );
- listModel.addElement("Mary Campione" );
- listModel.addElement("Sharon Zakhour" );
- //创建一个List构件,并将列表元素添加到列表中
- list = new JList(listModel);
- //设置选择模式为单选
- list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
- //初始化选择索引在0的位置,即第一个元素
- list.setSelectedIndex(0 );
- list.addListSelectionListener(this );
- //设置列表可以同时看5个元素
- list.setVisibleRowCount(5 );
- //给列表添加一个滑动块
- JScrollPane listScrollPane = new JScrollPane(list);
- JButton hireButton = new JButton(hireString);
- HireListener hireListener = new HireListener(hireButton);
- hireButton.setActionCommand(hireString);
- hireButton.addActionListener(hireListener);
- hireButton.setEnabled(false );
- fireButton = new JButton(fireString);
- fireButton.setActionCommand(fireString);
- fireButton.addActionListener(new FireListener());
- employeeName = new JTextField( 10 );
- employeeName.addActionListener(hireListener);
- employeeName.getDocument().addDocumentListener(hireListener);
- @SuppressWarnings ( "unused" )
- String name = listModel.getElementAt(
- list.getSelectedIndex()).toString();
- //创建一个面板
- JPanel buttonPane = new JPanel();
- buttonPane.setLayout(new BoxLayout(buttonPane,
- BoxLayout.LINE_AXIS));
- buttonPane.add(fireButton);
- buttonPane.add(Box.createHorizontalStrut(5 ));
- buttonPane.add(new JSeparator(SwingConstants.VERTICAL));
- buttonPane.add(Box.createHorizontalStrut(5 ));
- buttonPane.add(employeeName);
- buttonPane.add(hireButton);
- buttonPane.setBorder(BorderFactory.createEmptyBorder(5 , 5 , 5 , 5 ));
- add(listScrollPane, BorderLayout.CENTER);
- add(buttonPane, BorderLayout.PAGE_END);
- }
- /**
- *类说明:“添加”按钮监听
- *类描述:当点击“添加”按钮后,实现将元素添加到列表框中
- */
- class FireListener implements ActionListener {
- public void actionPerformed(ActionEvent e) {
- int index = list.getSelectedIndex();
- listModel.remove(index);
- int size = listModel.getSize();
- if (size == 0 ) { //如果没有了选择项,则是“删除”按钮实效
- fireButton.setEnabled(false );
- } else { //选择了一个
- if (index == listModel.getSize()) {
- //移除选项
- index--;
- }
- list.setSelectedIndex(index);
- list.ensureIndexIsVisible(index);
- }
- }
- }
- /**
- *类说明:“删除”按钮监听事件
- *类描述:实现删除列表元素
- */
- class HireListener implements ActionListener, DocumentListener {
- private boolean alreadyEnabled = false ;
- private JButton button;
- public HireListener(JButton button) {
- this .button = button;
- }
- //必须实现 ActionListener.
- public void actionPerformed(ActionEvent e) {
- String name = employeeName.getText();
- //如果输入空或有同名
- if (name.equals( "" ) || alreadyInList(name)) {
- Toolkit.getDefaultToolkit().beep();
- employeeName.requestFocusInWindow();
- employeeName.selectAll();
- return ;
- }
- int index = list.getSelectedIndex(); //获取选择项
- if (index == - 1 ) { //如果没有选择,就插入到第一个
- index = 0 ;
- } else { //如果有选择,那么插入到选择项的后面
- index++;
- }
- listModel.insertElementAt(employeeName.getText(), index);
- //重新设置文本
- employeeName.requestFocusInWindow();
- employeeName.setText("" );
- //选择新的元素,并显示出来
- list.setSelectedIndex(index);
- list.ensureIndexIsVisible(index);
- }
- /**
- *方法说明:检测是否在LIST中有重名元素
- *输入参数:String name 检测的名字
- *返回类型:boolean 布尔值,如果存在返回true
- */
- protected boolean alreadyInList(String name) {
- return listModel.contains(name);
- }
- /**
- *方法说明:实现DocumentListener接口,必需实现的方法:
- */
- public void insertUpdate(DocumentEvent e) {
- enableButton();
- }
- /**
- *方法说明:实现DocumentListener接口,必需实现的方法
- */
- public void removeUpdate(DocumentEvent e) {
- handleEmptyTextField(e);
- }
- /**
- *方法说明:实现DocumentListener接口,必需实现的方法
- */
- public void changedUpdate(DocumentEvent e) {
- if (!handleEmptyTextField(e)) {
- enableButton();
- }
- }
- /**
- *方法说明:按钮使能
- */
- private void enableButton() {
- if (!alreadyEnabled) {
- button.setEnabled(true );
- }
- }
- /**
- *方法说明:实现DocumentListener接口,必需实现的方法,修改按钮的状态
- */
- private boolean handleEmptyTextField(DocumentEvent e) {
- if (e.getDocument().getLength() <= 0 ) {
- button.setEnabled(false );
- alreadyEnabled = false ;
- return true ;
- }
- return false ;
- }
- }
- /**
- *方法说明:实现ListSelectionListener接口,必需实现的方法:
- */
- public void valueChanged(ListSelectionEvent e) {
- if (e.getValueIsAdjusting() == false ) {
- if (list.getSelectedIndex() == - 1 ) {
- fireButton.setEnabled(false );
- } else {
- fireButton.setEnabled(true );
- }
- }
- }
- /**
- *方法说明:主方法
- */
- public static void main(String[] args) {
- JFrame.setDefaultLookAndFeelDecorated(true );
- //创建一个窗体
- JFrame frame = new JFrame( "ListDemo" );
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- //创建一个面版
- JComponent newContentPane = new ListDemo();
- newContentPane.setOpaque(true );
- frame.setContentPane(newContentPane);
- //显示窗体
- frame.pack();
- frame.setVisible(true );
- }
- }
- package test15;
- import javax.swing.JTabbedPane;
- import javax.swing.ImageIcon;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JFrame;
- /**
- * Title: 选项卡演示
- * Description: 这里是一个选项卡演示,点击不同的卡片,显示的内容不同
- * Filename: TabbedPaneDemo.java
- */
- import java.awt.*;
- public class TabbedPaneDemo extends JPanel {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- public TabbedPaneDemo() {
- super ( new GridLayout( 1 , 1 ));
- ImageIcon icon = createImageIcon("images/middle.gif" );
- JTabbedPane tabbedPane = new JTabbedPane();
- Component panel1 = makeTextPanel("#第一个卡片#" );
- tabbedPane.addTab("One" , icon, panel1,
- "第一个卡片提示信息!" );
- tabbedPane.setSelectedIndex(0 );
- Component panel2 = makeTextPanel("##第二个卡片##" );
- tabbedPane.addTab("Two" , icon, panel2,
- "第二个卡片提示信息!" );
- Component panel3 = makeTextPanel("###第三个卡片###" );
- tabbedPane.addTab("Three" , icon, panel3,
- "第三个卡片提示信息!" );
- Component panel4 = makeTextPanel("####第四个卡片####" );
- tabbedPane.addTab("Four" , icon, panel4,
- "第四个卡片提示信息!" );
- //将选项卡添加到panl中
- add(tabbedPane);
- }
- /**
- *方法说明:添加信息到选项卡中
- *输入参数:String text 显示的信息内容
- *返回类型:Component 成员对象
- */
- protected Component makeTextPanel(String text) {
- JPanel panel = new JPanel( false );
- JLabel filler = new JLabel(text);
- filler.setHorizontalAlignment(JLabel.CENTER);
- panel.setLayout(new GridLayout( 1 , 1 ));
- panel.add(filler);
- return panel;
- }
- /**
- *方法说明:获得图片
- *输入参数:String path 图片的路径
- *返回类型:ImageIcon 图片对象
- */
- protected static ImageIcon createImageIcon(String path) {
- java.net.URL imgURL = TabbedPaneDemo.class .getResource(path);
- if (imgURL != null ) {
- return new ImageIcon(imgURL);
- } else {
- System.err.println("Couldn't find file: " + path);
- return null ;
- }
- }
- public static void main(String[] args) {
- //使用Swing窗体描述
- JFrame.setDefaultLookAndFeelDecorated(true );
- //创建窗体
- JFrame frame = new JFrame( "TabbedPaneDemo" );
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.getContentPane().add(new TabbedPaneDemo(),
- BorderLayout.CENTER);
- //显示窗体
- frame.setSize(400 , 200 );
- frame.setVisible(true );
- }
- }
- package test16;
- import javax.swing.JOptionPane;
- import javax.swing.JDialog;
- import javax.swing.JTextField;
- import java.beans.*; //property change stuff
- import java.awt.*;
- import java.awt.event.*;
- /**
- * Title: 用户自定义对话框
- * Description: 自己定义对话框的风格。这使得对话框的样式更加多样化
- * Filename: CustomDialog.java
- */
- class CustomDialog extends JDialog
- implements ActionListener,
- PropertyChangeListener {
- private static final long serialVersionUID = 1L;
- private String typedText = null ;
- private JTextField textField;
- private DialogDemo dd;
- private String magicWord;
- private JOptionPane optionPane;
- private String btnString1 = "确定" ;
- private String btnString2 = "取消" ;
- /**
- *方法说明:返回文本输入字符
- */
- public String getValidatedText() {
- return typedText;
- }
- /**
- *方法说明:创建一个结果对话框
- */
- public CustomDialog(Frame aFrame, String aWord, DialogDemo parent) {
- super (aFrame, true );
- dd = parent;
- magicWord = aWord.toUpperCase();
- setTitle("测试" );
- textField = new JTextField( 10 );
- //定义显示信息
- String msgString1 = "李先生: jeck是你的英文名字吗?" ;
- String msgString2 = "(这个答案是: \"" + magicWord
- + "\"。)" ;
- Object[] array = {msgString1, msgString2, textField};
- Object[] options = {btnString1, btnString2};
- //创建对话框
- optionPane = new JOptionPane(array,
- JOptionPane.QUESTION_MESSAGE,
- JOptionPane.YES_NO_OPTION,
- null ,
- options,
- options[0 ]);
- //显示对话框
- setContentPane(optionPane);
- //设置当关闭窗体动作模式
- setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
- addWindowListener(new WindowAdapter() {
- public void windowClosing(WindowEvent we) {
- optionPane.setValue(new Integer(
- JOptionPane.CLOSED_OPTION));
- }
- });
- //使的文本输入域得到焦点
- addComponentListener(new ComponentAdapter() {
- public void componentShown(ComponentEvent ce) {
- textField.requestFocusInWindow();
- }
- });
- //给文本域添加监听事件
- textField.addActionListener(this );
- //监听输入改变
- optionPane.addPropertyChangeListener(this );
- }
- /** 文本域监听处理 */
- public void actionPerformed(ActionEvent e) {
- optionPane.setValue(btnString1);
- }
- /** 监听输入的改变 */
- public void propertyChange(PropertyChangeEvent e) {
- String prop = e.getPropertyName();
- if (isVisible()
- && (e.getSource() == optionPane)
- && (JOptionPane.VALUE_PROPERTY.equals(prop) ||
- JOptionPane.INPUT_VALUE_PROPERTY.equals(prop))) {
- Object value = optionPane.getValue();
- if (value == JOptionPane.UNINITIALIZED_VALUE) {
- return ;
- }
- optionPane.setValue(
- JOptionPane.UNINITIALIZED_VALUE);
- if (btnString1.equals(value)) {
- typedText = textField.getText();
- String ucText = typedText.toUpperCase();
- if (magicWord.equals(ucText)) {
- //如果输入有效,则清楚文本域并隐藏对话框
- clearAndHide();
- } else {
- //文本输入无效
- textField.selectAll();
- JOptionPane.showMessageDialog(
- CustomDialog.this ,
- "对不起, \"" + typedText + "\" "
- + "是无效的输入。\n"
- + "请重新输入"
- + magicWord + "." ,
- "再试一次" ,
- JOptionPane.ERROR_MESSAGE);
- typedText = null ;
- textField.requestFocusInWindow();
- }
- } else { //用户关闭了对话框或点击了“cancel”
- dd.setLabel("好吧! "
- + "我们不能影响你的决定输入"
- + magicWord + "。" );
- typedText = null ;
- clearAndHide();
- }
- }
- }
- /**
- *方法说明:清楚文本域并隐藏痘翱蝌
- */
- public void clearAndHide() {
- textField.setText(null );
- setVisible(false );
- }
- }
- package test16;
- import javax.swing.JOptionPane;
- import javax.swing.JDialog;
- import javax.swing.JButton;
- import javax.swing.JRadioButton;
- import javax.swing.ButtonGroup;
- import javax.swing.JLabel;
- import javax.swing.ImageIcon;
- import javax.swing.BoxLayout;
- import javax.swing.Box;
- import javax.swing.BorderFactory;
- import javax.swing.border.Border;
- import javax.swing.JTabbedPane;
- import javax.swing.JPanel;
- import javax.swing.JFrame;
- import java.beans.*;
- import java.awt.*;
- import java.awt.event.*;
- /**
- *Title: 对话框演示
- *Description: 全面的演示各种类型的对话框的使用
- *Filename: DialogDemo.java
- */
- public class DialogDemo extends JPanel {
- private static final long serialVersionUID = 1L;
- JLabel label;
- ImageIcon icon = createImageIcon("images/middle.gif" );
- JFrame frame;
- String simpleDialogDesc = "简单的信息提示对话窗" ;
- String iconDesc = "带有图标的对话窗" ;
- String moreDialogDesc = "复杂信息对话窗" ;
- CustomDialog customDialog;
- /**
- *方法说明:构造器,生成一个面板添加到JFrame中
- *输入参数:
- *返回类型:
- */
- public DialogDemo(JFrame frame) {
- super ( new BorderLayout());
- this .frame = frame;
- customDialog = new CustomDialog(frame, "tom" , this );
- customDialog.pack();
- //创建成员
- JPanel frequentPanel = createSimpleDialogBox();
- JPanel featurePanel = createFeatureDialogBox();
- JPanel iconPanel = createIconDialogBox();
- label = new JLabel( "点击\"显示\" 按钮"
- + " 显示一个选择的对话框" ,
- JLabel.CENTER);
- //放置对象
- Border padding = BorderFactory.createEmptyBorder(20 , 20 , 5 , 20 );
- frequentPanel.setBorder(padding);
- featurePanel.setBorder(padding);
- iconPanel.setBorder(padding);
- //创建选项卡
- JTabbedPane tabbedPane = new JTabbedPane();
- tabbedPane.addTab("简单对话窗" , null ,
- frequentPanel,
- simpleDialogDesc);
- tabbedPane.addTab("复杂对话窗" , null ,
- featurePanel,
- moreDialogDesc);
- tabbedPane.addTab("图标对话窗" , null ,
- iconPanel,
- iconDesc);
- add(tabbedPane, BorderLayout.CENTER);
- add(label, BorderLayout.PAGE_END);
- label.setBorder(BorderFactory.createEmptyBorder(10 , 10 , 10 , 10 ));
- }
- /**
- *方法说明:设置按钮上的文字
- *输入参数:String newText 添加的文字
- *返回类型:
- */
- void setLabel(String newText) {
- label.setText(newText);
- }
- /**
- *方法说明:获取图片
- *输入参数:String path 图片完整路径和名字
- *返回类型:ImageIcon 图片对象
- */
- protected static ImageIcon createImageIcon(String path) {
- java.net.URL imgURL = DialogDemo.class .getResource(path);
- if (imgURL != null ) {
- return new ImageIcon(imgURL);
- } else {
- System.err.println("Couldn't find file: " + path);
- return null ;
- }
- }
- /**
- *方法说明:创建一个JPanel,给第一个选项卡
- *输入参数:
- *返回类型:
- */
- private JPanel createSimpleDialogBox() {
- final int numButtons = 4 ;
- JRadioButton[] radioButtons = new JRadioButton[numButtons];
- final ButtonGroup group = new ButtonGroup();
- JButton showItButton = null ;
- final String defaultMessageCommand = "default" ;
- final String yesNoCommand = "yesno" ;
- final String yeahNahCommand = "yeahnah" ;
- final String yncCommand = "ync" ;
- //添加单选到数字
- radioButtons[0 ] = new JRadioButton( "只有“OK”按钮" );
- radioButtons[0 ].setActionCommand(defaultMessageCommand);
- radioButtons[1 ] = new JRadioButton( "有“Yes/No”二个按钮" );
- radioButtons[1 ].setActionCommand(yesNoCommand);
- radioButtons[2 ] = new JRadioButton( "有“Yes/No”两个按钮 "
- + "(程序添加文字)" );
- radioButtons[2 ].setActionCommand(yeahNahCommand);
- radioButtons[3 ] = new JRadioButton( "有“Yes/No/Cancel”三个按钮 "
- + "(程序添加文字)" );
- radioButtons[3 ].setActionCommand(yncCommand);
- //将四个单选组成一个群
- for ( int i = 0 ; i < numButtons; i++) {
- group.add(radioButtons[i]);
- }
- //设置第一个为默认选择
- radioButtons[0 ].setSelected( true );
- //定义“显示”按钮
- showItButton = new JButton( "显示" );
- //给“显示”按钮添加监听
- showItButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- String command = group.getSelection().getActionCommand();
- //ok对话窗
- if (command == defaultMessageCommand) {
- JOptionPane.showMessageDialog(frame,
- "鸡蛋不可能是绿色的!" );
- //yes/no 对话窗
- } else if (command == yesNoCommand) {
- int n = JOptionPane.showConfirmDialog(
- frame, "你喜欢吃酸菜鱼吗?" ,
- "一个很无聊的问题!!" ,
- JOptionPane.YES_NO_OPTION);
- if (n == JOptionPane.YES_OPTION) { //选择yes
- setLabel("哇!我也是!" );
- } else if (n == JOptionPane.NO_OPTION) { //选择no
- setLabel("唉!我喜欢吃!" );
- } else {
- setLabel("快告诉我吧!" );
- }
- //yes/no (自己输入选项)
- } else if (command == yeahNahCommand) {
- Object[] options = {"是的" , "不喜欢" };
- int n = JOptionPane.showOptionDialog(frame,
- "你喜欢酸菜鱼吗?" ,
- "又一个无聊的问题!" ,
- JOptionPane.YES_NO_OPTION,
- JOptionPane.QUESTION_MESSAGE,
- null ,
- options,
- options[0 ]);
- if (n == JOptionPane.YES_OPTION) {
- setLabel("你哄人的吧,我也喜欢。" );
- } else if (n == JOptionPane.NO_OPTION) {
- setLabel("其实我也不喜欢!" );
- } else {
- setLabel("这都不肯告诉我,小气鬼!" );
- }
- //yes/no/cancel 对话框
- } else if (command == yncCommand) {
- Object[] options = {"是的,给我来一份。" ,
- "不,谢谢!" ,
- "不,我要水煮鱼!" };
- //构造对话框
- int n = JOptionPane.showOptionDialog(frame,
- "先生!我们这里有鲜美的酸菜鱼,您需要吗?" ,
- "服务生的问题。" ,
- JOptionPane.YES_NO_CANCEL_OPTION,
- JOptionPane.QUESTION_MESSAGE,
- null ,
- options,
- options[2 ]);
- if (n == JOptionPane.YES_OPTION) {
- setLabel("你要的酸菜鱼来了!" );
- } else if (n == JOptionPane.NO_OPTION) {
- setLabel("好的,你需要其它的。" );
- } else if (n == JOptionPane.CANCEL_OPTION) {
- setLabel("好的,我们给你做水煮鱼!" );
- } else {
- setLabel("对不起!你还没有点菜呢!" );
- }
- }
- return ;
- }
- });
- return createPane(simpleDialogDesc + ":" ,
- radioButtons,
- showItButton);
- }
- /**
- *方法说明:提供给createSimpleDialogBox和createFeatureDialogBox方法
- *方法说明:创建带提示信息、一列单选框和“显示”按钮
- *输入参数:String description 提示帮助信息
- *输入参数:JRadioButton[] radioButtons 单选框组
- *输入参数:JButton showButton “显示”按钮
- *返回类型:JPanel 添加好的面板
- */
- private JPanel createPane(String description,
- JRadioButton[] radioButtons,
- JButton showButton) {
- int numChoices = radioButtons.length;
- JPanel box = new JPanel();
- JLabel label = new JLabel(description);
- box.setLayout(new BoxLayout(box, BoxLayout.PAGE_AXIS));
- box.add(label);
- //添加radio
- for ( int i = 0 ; i < numChoices; i++) {
- box.add(radioButtons[i]);
- }
- JPanel pane = new JPanel( new BorderLayout());
- pane.add(box, BorderLayout.PAGE_START);
- pane.add(showButton, BorderLayout.PAGE_END);
- return pane;
- }
- /**
- *方法说明:提供给createSimpleDialogBox和createFeatureDialogBox方法
- *方法说明:创建带提示信息、二列单选框和“显示”按钮
- *输入参数:String description 提示帮助信息
- *输入参数:JRadioButton[] radioButtons 单选框组
- *输入参数:JButton showButton “显示”按钮
- *返回类型:JPanel 添加好的面板
- */
- private JPanel create2ColPane(String description,
- JRadioButton[] radioButtons,
- JButton showButton) {
- JLabel label = new JLabel(description);
- int numPerColumn = radioButtons.length/ 2 ;
- JPanel grid = new JPanel( new GridLayout( 0 , 2 ));
- for ( int i = 0 ; i < numPerColumn; i++) {
- grid.add(radioButtons[i]);
- grid.add(radioButtons[i + numPerColumn]);
- }
- JPanel box = new JPanel();
- box.setLayout(new BoxLayout(box, BoxLayout.PAGE_AXIS));
- box.add(label);
- grid.setAlignmentX(0 .0f);
- box.add(grid);
- JPanel pane = new JPanel( new BorderLayout());
- pane.add(box, BorderLayout.PAGE_START);
- pane.add(showButton, BorderLayout.PAGE_END);
- return pane;
- }
- /**
- *方法说明:创建第三个选项卡的面板
- *方法说明:这里都是实现showMessageDialog类,但是也可以指定图标
- *输入参数:
- *返回类型:JPanel 构造好的面板
- */
- private JPanel createIconDialogBox() {
- JButton showItButton = null ;
- final int numButtons = 6 ;
- JRadioButton[] radioButtons = new JRadioButton[numButtons];
- final ButtonGroup group = new ButtonGroup();
- final String plainCommand = "plain" ;
- final String infoCommand = "info" ;
- final String questionCommand = "question" ;
- final String errorCommand = "error" ;
- final String warningCommand = "warning" ;
- final String customCommand = "custom" ;
- radioButtons[0 ] = new JRadioButton( "普通(没有图标)" );
- radioButtons[0 ].setActionCommand(plainCommand);
- radioButtons[1 ] = new JRadioButton( "信息图标" );
- radioButtons[1 ].setActionCommand(infoCommand);
- radioButtons[2 ] = new JRadioButton( "问题图标" );
- radioButtons[2 ].setActionCommand(questionCommand);
- radioButtons[3 ] = new JRadioButton( "错误图标" );
- radioButtons[3 ].setActionCommand(errorCommand);
- radioButtons[4 ] = new JRadioButton( "警告图标" );
- radioButtons[4 ].setActionCommand(warningCommand);
- radioButtons[5 ] = new JRadioButton( "自定义图标" );
- radioButtons[5 ].setActionCommand(customCommand);
- for ( int i = 0 ; i < numButtons; i++) {
- group.add(radioButtons[i]);
- }
- radioButtons[0 ].setSelected( true );
- showItButton = new JButton( "显示" );
- showItButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- String command = group.getSelection().getActionCommand();
- //没有图标
- if (command == plainCommand) {
- JOptionPane.showMessageDialog(frame,
- "水煮鱼里不要放酸菜!" ,
- "无图标" ,
- JOptionPane.PLAIN_MESSAGE);
- //信息图标
- } else if (command == infoCommand) {
- JOptionPane.showMessageDialog(frame,
- "水煮鱼里不要放酸菜!" ,
- "信息图标" ,
- JOptionPane.INFORMATION_MESSAGE);
- //问题图标
- } else if (command == questionCommand) {
- JOptionPane.showMessageDialog(frame,
- "请你吃饭前洗手,好吗?" ,
- "问题" ,
- JOptionPane.QUESTION_MESSAGE);
- //错误图标
- } else if (command == errorCommand) {
- JOptionPane.showMessageDialog(frame,
- "对不起,你的信用卡没有资金了!" ,
- "错误信息" ,
- JOptionPane.ERROR_MESSAGE);
- //警告图标
- } else if (command == warningCommand) {
- JOptionPane.showMessageDialog(frame,
- "警告!你严重透支信用卡,请尽快补齐金额!" ,
- "警告信息" ,
- JOptionPane.WARNING_MESSAGE);
- //自定义图标
- } else if (command == customCommand) {
- JOptionPane.showMessageDialog(frame,
- "哈哈。我想用什么图标都可以!" ,
- "自定义对话窗" ,
- JOptionPane.INFORMATION_MESSAGE,
- icon);
- }
- }
- });
- return create2ColPane(iconDesc + ":" ,
- radioButtons,
- showItButton);
- }
- /**
- *方法说明:创建一个JPanel,放在第二个选项卡上
- *输入参数:
- *返回类型:
- */
- private JPanel createFeatureDialogBox() {
- final int numButtons = 5 ;
- JRadioButton[] radioButtons = new JRadioButton[numButtons];
- final ButtonGroup group = new ButtonGroup();
- JButton showItButton = null ;
- //定义操作命令
- final String pickOneCommand = "pickone" ;
- final String textEnteredCommand = "textfield" ;
- final String nonAutoCommand = "nonautooption" ;
- final String customOptionCommand = "customoption" ;
- final String nonModalCommand = "nonmodal" ;
- //定义radio数组
- radioButtons[0 ] = new JRadioButton( "选择一个" );
- radioButtons[0 ].setActionCommand(pickOneCommand);
- radioButtons[1 ] = new JRadioButton( "输入信息" );
- radioButtons[1 ].setActionCommand(textEnteredCommand);
- radioButtons[2 ] = new JRadioButton( "关闭按钮无效" );
- radioButtons[2 ].setActionCommand(nonAutoCommand);
- radioButtons[3 ] = new JRadioButton( "输入校验"
- + "(用户输入信息)" );
- radioButtons[3 ].setActionCommand(customOptionCommand);
- radioButtons[4 ] = new JRadioButton( "没有模式" );
- radioButtons[4 ].setActionCommand(nonModalCommand);
- //合成一个组群
- for ( int i = 0 ; i < numButtons; i++) {
- group.add(radioButtons[i]);
- }
- //设置第一个为默认选择
- radioButtons[0 ].setSelected( true );
- showItButton = new JButton( "显示" );
- showItButton.addActionListener(new ActionListener() {
- @SuppressWarnings ( "static-access" )
- public void actionPerformed(ActionEvent e) {
- String command = group.getSelection().getActionCommand();
- //选择一个
- if (command == pickOneCommand) {
- Object[] possibilities = {"辣椒" , "西红柿" , "洋葱" };
- //设置对话框
- String s = (String)JOptionPane.showInputDialog(
- frame, //所属窗体
- "请选择项目:\n"
- + "\"鸡蛋炒\"" , //输出信息
- "客户选择" ,
- JOptionPane.PLAIN_MESSAGE, //对话框模式
- icon, //显示图标
- possibilities, //选项内容
- "辣椒" ); //默认选项
- //如果有选择
- if ((s != null ) && (s.length() > 0 )) {
- setLabel("鸡蛋炒" + s + "!" );
- return ;
- }
- //如果客户没有选择
- setLabel("快点!" );
- //文本输入
- } else if (command == textEnteredCommand) {
- String s = (String)JOptionPane.showInputDialog(
- frame,
- "选择一个配料\n"
- + "\"鸡蛋炒\"" ,
- "客户输入" ,
- JOptionPane.PLAIN_MESSAGE,
- icon,
- null ,
- "辣椒" );
- //如果用户有输入
- if ((s != null ) && (s.length() > 0 )) {
- setLabel("你要的是鸡蛋炒" + s + "!" );
- return ;
- }
- //如果返回的是空或者是null。
- setLabel("快些选择!" );
- //关闭按钮无效
- } else if (command == nonAutoCommand) {
- //构造一个对话框面板
- final JOptionPane optionPane = new JOptionPane(
- "关闭这个对话框\n"
- + "请点击下面的按钮\n"
- + "明白吗?" ,
- JOptionPane.QUESTION_MESSAGE,
- JOptionPane.YES_NO_OPTION);
- JDialog.setDefaultLookAndFeelDecorated(false );
- //构造一个对话框
- final JDialog dialog = new JDialog(frame,
- "点击一个按钮" ,
- true );
- //将对话框面板添加到对话框中
- dialog.setContentPane(optionPane);
- //设置对话框关闭时的操作模式
- dialog.setDefaultCloseOperation(
- JDialog.DO_NOTHING_ON_CLOSE);
- dialog.addWindowListener(new WindowAdapter() {
- public void windowClosing(WindowEvent we) { //当点击关闭按钮
- setLabel("阻碍用户视图关闭窗体!" );
- }
- });
- JDialog.setDefaultLookAndFeelDecorated(true );
- optionPane.addPropertyChangeListener(
- new PropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent e) {
- String prop = e.getPropertyName();
- if (dialog.isVisible()
- && (e.getSource() == optionPane)
- && (JOptionPane.VALUE_PROPERTY.equals(prop))) {
- //如果你要阻止关闭按钮,可以在这里进行处理。
- dialog.setVisible(false );
- }
- }
- });
- dialog.pack();
- dialog.setLocationRelativeTo(frame);
- dialog.setVisible(true );
- int value = ((Integer)optionPane.getValue()).intValue();
- if (value == JOptionPane.YES_OPTION) {
- setLabel("好的" );
- } else if (value == JOptionPane.NO_OPTION) {
- setLabel("试图点击关闭按钮来关闭一个不能关闭的对话框!"
- + "你不能!" );
- } else {
- setLabel("窗体可以使用ESC键关闭。" );
- }
- //自己定义版面
- } else if (command == customOptionCommand) {
- customDialog.setLocationRelativeTo(frame);
- customDialog.setVisible(true );
- String s = customDialog.getValidatedText();
- if (s != null ) {
- //The text is valid.
- setLabel("欢迎你!"
- + "你已经进入了\""
- + s
- + "\"。" );
- }
- //没有模式
- } else if (command == nonModalCommand) {
- //创建一个对话框
- final JDialog dialog = new JDialog(frame,
- "一个没有模式的对话框" );
- //使用html语言来显示信息
- JLabel label = new JLabel( "<html><p align=center>"
- + "这是一个没有模式的对话框"
- + "你可以使用更多的格式"
- + "甚至可以使用主窗体!" );
- label.setHorizontalAlignment(JLabel.CENTER);
- Font font = label.getFont();
- label.setFont(label.getFont().deriveFont(font.PLAIN,
- 14 .0f));
- JButton closeButton = new JButton( "关闭" );
- closeButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- dialog.setVisible(false );
- dialog.dispose();
- }
- });
- JPanel closePanel = new JPanel();
- closePanel.setLayout(new BoxLayout(closePanel,
- BoxLayout.LINE_AXIS));
- closePanel.add(Box.createHorizontalGlue());
- closePanel.add(closeButton);
- closePanel.setBorder(BorderFactory.
- createEmptyBorder(0 , 0 , 5 , 5 ));
- JPanel contentPane = new JPanel( new BorderLayout());
- contentPane.add(label, BorderLayout.CENTER);
- contentPane.add(closePanel, BorderLayout.PAGE_END);
- contentPane.setOpaque(true );
- dialog.setContentPane(contentPane);
- //显示窗体
- dialog.setSize(new Dimension( 300 , 150 ));
- dialog.setLocationRelativeTo(frame);
- dialog.setVisible(true );
- }
- }
- });
- return createPane(moreDialogDesc + ":" ,
- radioButtons,
- showItButton);
- }
- public static void main(String[] args) {
- JFrame.setDefaultLookAndFeelDecorated(true );
- JDialog.setDefaultLookAndFeelDecorated(true );
- //创建和设置一个窗体
- JFrame frame = new JFrame( "DialogDemo" );
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- //设置一个面板
- Container contentPane = frame.getContentPane();
- contentPane.setLayout(new GridLayout( 1 , 1 ));
- contentPane.add(new DialogDemo(frame));
- //显示窗体
- frame.pack();
- frame.setVisible(true );
- }
- }
- package test17;
- import java.io.*;
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.*;
- /**
- * Title: 文件对话框演示
- * Description: 演示打开文件对话框和保存文件对话框,使用了文件过滤。
- * Filename: FileChooserDemo.java
- */
- public class FileChooserDemo extends JPanel
- implements ActionListener {
- private static final long serialVersionUID = 1L;
- static private final String newline = "\n" ;
- JButton openButton, saveButton;
- JTextArea log;
- JFileChooser fc;
- public FileChooserDemo() {
- super ( new BorderLayout());
- log = new JTextArea( 15 , 40 );
- log.setMargin(new Insets( 10 , 10 , 10 , 10 ));
- log.setEditable(false );
- JScrollPane logScrollPane = new JScrollPane(log);
- //创建一个文件过滤,使用当前目录
- fc = new JFileChooser( "." );
- //过滤条件在MyFilter类中定义
- fc.addChoosableFileFilter(new MyFilter());
- openButton = new JButton( "打开文件" ,
- createImageIcon("images/Open16.gif" ));
- openButton.addActionListener(this );
- saveButton = new JButton( "保存文件" ,
- createImageIcon("images/Save16.gif" ));
- saveButton.addActionListener(this );
- //构建一个面板,添加“打开文件”和“保存文件”
- JPanel buttonPanel = new JPanel();
- buttonPanel.add(openButton);
- buttonPanel.add(saveButton);
- add(buttonPanel, BorderLayout.PAGE_START);
- add(logScrollPane, BorderLayout.CENTER);
- }
- /**
- *方法说明:事件处理
- *输入参数:
- *返回类型:
- */
- public void actionPerformed(ActionEvent e) {
- //当点击“打开文件”按钮
- if (e.getSource() == openButton) {
- int returnVal = fc.showOpenDialog(FileChooserDemo. this );
- if (returnVal == JFileChooser.APPROVE_OPTION) {
- File file = fc.getSelectedFile();
- //在这里添加一些对文件的处理
- log.append("打开文件: " + file.getName() + newline);
- } else {
- log.append("打开文件被用户取消!" + newline);
- }
- //点击“保存文件”按钮
- } else if (e.getSource() == saveButton) {
- int returnVal = fc.showSaveDialog(FileChooserDemo. this );
- if (returnVal == JFileChooser.APPROVE_OPTION) {
- File file = fc.getSelectedFile();
- //在这里添加一些对文件的处理
- log.append("保存文件: " + file.getName() + newline);
- } else {
- log.append("保存文件被用户取消!" + newline);
- }
- }
- }
- /**
- *方法说明:获取图像对象
- *输入参数:String path 图片路径
- *返回类型:ImageIcon 图片对象
- */
- protected static ImageIcon createImageIcon(String path) {
- java.net.URL imgURL = FileChooserDemo.class .getResource(path);
- if (imgURL != null ) {
- return new ImageIcon(imgURL);
- } else {
- System.err.println("Couldn't find file: " + path);
- return null ;
- }
- }
- public static void main(String[] args) {
- JFrame.setDefaultLookAndFeelDecorated(true );
- JDialog.setDefaultLookAndFeelDecorated(true );
- //创建窗体
- JFrame frame = new JFrame( "FileChooserDemo" );
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- //创建一个面板
- JComponent newContentPane = new FileChooserDemo();
- newContentPane.setOpaque(true );
- frame.setContentPane(newContentPane);
- //显示窗体
- frame.pack();
- frame.setVisible(true );
- }
- }
- package test17;
- import java.io.File;
- import javax.swing.filechooser.*;
- /**
- * Title: 文件过滤器演示
- * Description: FileChooserDemo文件使用的文件过滤器
- * Filename: MyFilter.java
- */
- public class MyFilter extends FileFilter {
- @SuppressWarnings ( "unused" )
- private String files;
- public boolean accept(File f) {
- if (f.isDirectory()) {
- return true ;
- }
- String extension = getExtension(f);
- if (extension != null ) {
- if (extension.equals( "java" )) { //定义过滤Java文件
- return true ;
- } else {
- return false ;
- }
- }
- return false ;
- }
- //过滤器描述
- public String getDescription() {
- return "Java" ;
- }
- /**
- *方法说明:获取文件扩展名
- */
- public static String getExtension(File f) {
- String ext = null ;
- String s = f.getName();
- int i = s.lastIndexOf( '.' );
- if (i > 0 && i < s.length() - 1 ) {
- ext = s.substring(i+1 ).toLowerCase();
- }
- return ext;
- }
- }
- package test18;
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.*;
- /**
- * Description: 这里演示使用html语言在swing面板上构造显示信息
- * Filename: HtmlDemo.java
- */
- public class HtmlDemo extends JPanel
- implements ActionListener {
- private static final long serialVersionUID = 1L;
- JLabel theLabel;
- JTextArea htmlTextArea;
- /**
- *方法说明:构造器,描述窗体中的成员
- *输入参数:
- *返回类型:
- */
- public HtmlDemo() {
- setLayout(new BoxLayout( this , BoxLayout.LINE_AXIS));
- String initialText = "<html>\n" +
- "颜色和字体测试:\n" +
- "<ul>\n" +
- "<li><font color=red>red</font>\n" +
- "<li><font color=blue>blue</font>\n" +
- "<li><font color=green>green</font>\n" +
- "<li><font size=-2>small</font>\n" +
- "<li><font size=+2>large</font>\n" +
- "<li><i>italic</i>\n" +
- "<li><b>bold</b>\n" +
- "</ul>\n" ;
- //定义一个文本框
- htmlTextArea = new JTextArea( 10 , 20 );
- htmlTextArea.setText(initialText);
- JScrollPane scrollPane = new JScrollPane(htmlTextArea);
- //定义按钮
- JButton changeTheLabel = new JButton( "改变显示" );
- changeTheLabel.setMnemonic(KeyEvent.VK_C);
- changeTheLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
- changeTheLabel.addActionListener(this );
- //定义标签
- theLabel = new JLabel(initialText) {
- private static final long serialVersionUID = 1L;
- public Dimension getPreferredSize() {
- return new Dimension( 200 , 200 );
- }
- public Dimension getMinimumSize() {
- return new Dimension( 200 , 200 );
- }
- public Dimension getMaximumSize() {
- return new Dimension( 200 , 200 );
- }
- };
- //设置标签的对齐方式
- theLabel.setVerticalAlignment(SwingConstants.CENTER);
- theLabel.setHorizontalAlignment(SwingConstants.CENTER);
- //构造一个带边框的左边的编辑面板
- JPanel leftPanel = new JPanel();
- leftPanel.setLayout(new BoxLayout(leftPanel, BoxLayout.PAGE_AXIS));
- leftPanel.setBorder(BorderFactory.createCompoundBorder(
- BorderFactory.createTitledBorder(
- "编辑HTML,点击按钮显示结果。" ),
- BorderFactory.createEmptyBorder(10 , 10 , 10 , 10 )));
- leftPanel.add(scrollPane);
- leftPanel.add(Box.createRigidArea(new Dimension( 0 , 10 )));
- leftPanel.add(changeTheLabel);
- //构造一个带边框的右边显示的面板
- JPanel rightPanel = new JPanel();
- rightPanel.setLayout(new BoxLayout(rightPanel, BoxLayout.PAGE_AXIS));
- rightPanel.setBorder(BorderFactory.createCompoundBorder(
- BorderFactory.createTitledBorder("这里使用标签显示HTML结果" ),
- BorderFactory.createEmptyBorder(10 , 10 , 10 , 10 )));
- rightPanel.add(theLabel);
- setBorder(BorderFactory.createEmptyBorder(10 , 10 , 10 , 10 ));
- add(leftPanel);
- add(Box.createRigidArea(new Dimension( 10 , 0 )));
- add(rightPanel);
- }
- /**
- *方法说明:事件监听,当用户点击按钮触发
- *输入参数:
- *返回类型:
- */
- public void actionPerformed(ActionEvent e) {
- theLabel.setText(htmlTextArea.getText());
- }
- /**
- *方法说明:主方法
- *输入参数:
- *返回类型:
- */
- public static void main(String[] args) {
- JFrame.setDefaultLookAndFeelDecorated(true );
- //创建窗体
- JFrame frame = new JFrame( "HtmlDemo" );
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- //创建面板
- JComponent newContentPane = new HtmlDemo();
- newContentPane.setOpaque(true );
- frame.setContentPane(newContentPane);
- //显示窗体
- frame.pack();
- frame.setVisible(true );
- }
- }
- package test19;
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.JPopupMenu;
- import javax.swing.JMenu;
- import javax.swing.JMenuItem;
- import javax.swing.JCheckBoxMenuItem;
- import javax.swing.JRadioButtonMenuItem;
- import javax.swing.ButtonGroup;
- import javax.swing.JMenuBar;
- import javax.swing.KeyStroke;
- import javax.swing.ImageIcon;
- import javax.swing.JPanel;
- import javax.swing.JTextArea;
- import javax.swing.JScrollPane;
- import javax.swing.JFrame;
- /**
- * Title: 菜单演示
- * Description: 演示菜单的建立和快捷键的使用。
- * Filename: MenuDemo.java
- */
- public class MenuDemo implements ActionListener, ItemListener {
- JTextArea output;
- JScrollPane scrollPane;
- String newline = "\n" ;
- /**
- *方法说明:组建菜单栏
- *输入参数:
- *返回类型:
- */
- public JMenuBar createMenuBar() {
- JMenuBar menuBar;
- JMenu menu, submenu;
- JMenuItem menuItem;
- JRadioButtonMenuItem rbMenuItem;
- JCheckBoxMenuItem cbMenuItem;
- //定义菜单条
- menuBar = new JMenuBar();
- //定义第一个菜单
- menu = new JMenu( "(A)菜单" );
- menu.setMnemonic(KeyEvent.VK_A);
- menuBar.add(menu);
- //下面开始定义菜单项
- //只有文字
- menuItem = new JMenuItem( "(O)只有文本的菜单" ,
- KeyEvent.VK_O);
- //设置快捷键
- menuItem.setAccelerator(KeyStroke.getKeyStroke(
- KeyEvent.VK_1, ActionEvent.ALT_MASK));
- //添加监听
- menuItem.addActionListener(this );
- menu.add(menuItem);
- //有图标还有文字
- ImageIcon icon = createImageIcon("images/middle.gif" );
- menuItem = new JMenuItem( "(B)有图标和文字的菜单" , icon);
- menuItem.setMnemonic(KeyEvent.VK_B);
- menuItem.addActionListener(this );
- menu.add(menuItem);
- //只有图标
- menuItem = new JMenuItem(icon);
- menuItem.setMnemonic(KeyEvent.VK_D);
- menuItem.addActionListener(this );
- menu.add(menuItem);
- //定义一组radio button(单选按钮)菜单
- menu.addSeparator();
- ButtonGroup group = new ButtonGroup();
- rbMenuItem = new JRadioButtonMenuItem( "(R)使用radio的菜单" );
- rbMenuItem.setSelected(true );
- rbMenuItem.setMnemonic(KeyEvent.VK_R);
- group.add(rbMenuItem);
- rbMenuItem.addActionListener(this );
- menu.add(rbMenuItem);
- rbMenuItem = new JRadioButtonMenuItem( "(d)另外一个radio菜单" );
- rbMenuItem.setMnemonic(KeyEvent.VK_D);
- group.add(rbMenuItem);
- rbMenuItem.addActionListener(this );
- menu.add(rbMenuItem);
- //定义一组check box(检查盒)菜单
- menu.addSeparator();
- cbMenuItem = new JCheckBoxMenuItem( "(C)使用检查盒的菜单" );
- cbMenuItem.setMnemonic(KeyEvent.VK_C);
- cbMenuItem.addItemListener(this );
- menu.add(cbMenuItem);
- cbMenuItem = new JCheckBoxMenuItem( "(H)另外一个检查盒" );
- cbMenuItem.setMnemonic(KeyEvent.VK_H);
- cbMenuItem.addItemListener(this );
- menu.add(cbMenuItem);
- //定义一个带子菜单
- menu.addSeparator();
- submenu = new JMenu( "(S)带有子菜单" );
- submenu.setMnemonic(KeyEvent.VK_S);
- //定义子菜单
- menuItem = new JMenuItem( "这是子菜单" );
- //定义快捷键
- menuItem.setAccelerator(KeyStroke.getKeyStroke(
- KeyEvent.VK_2, ActionEvent.ALT_MASK));
- menuItem.addActionListener(this );
- submenu.add(menuItem);
- menuItem = new JMenuItem( "子菜单项" );
- menuItem.addActionListener(this );
- submenu.add(menuItem);
- menu.add(submenu);
- //定义第二个菜单
- menu = new JMenu( "(N)第二个菜单" );
- menu.setMnemonic(KeyEvent.VK_N);
- menuBar.add(menu);
- return menuBar;
- }
- /**
- *方法说明:构建面板
- *输入参数:
- *返回类型:
- */
- public Container createContentPane() {
- //构造一个面板
- JPanel contentPane = new JPanel( new BorderLayout());
- contentPane.setOpaque(true );
- //定义一个文本域
- output = new JTextArea( 5 , 30 );
- output.setEditable(false );
- scrollPane = new JScrollPane(output);
- //将文本域添加到面板中
- contentPane.add(scrollPane, BorderLayout.CENTER);
- return contentPane;
- }
- /**
- *方法说明:构建弹出菜单
- *输入参数:
- *返回类型:
- */
- public void createPopupMenu() {
- JMenuItem menuItem;
- //构件弹出菜单
- JPopupMenu popup = new JPopupMenu();
- ImageIcon openicon = createImageIcon("images/Open16.gif" );
- menuItem = new JMenuItem( "打开文件" ,openicon);
- menuItem.addActionListener(this );
- popup.add(menuItem);
- ImageIcon saveicon = createImageIcon("images/Save16.gif" );
- menuItem = new JMenuItem( "保存文件" ,saveicon);
- menuItem.addActionListener(this );
- popup.add(menuItem);
- //添加一个监听给文本域,以便点击右键时响应
- MouseListener popupListener = new PopupListener(popup);
- output.addMouseListener(popupListener);
- }
- /**
- *方法说明:监听普通的菜单选择
- *输入参数:ActionEvent e 事件
- *返回类型:
- */
- public void actionPerformed(ActionEvent e) {
- JMenuItem source = (JMenuItem)(e.getSource());
- String s = "监测事件。"
- + newline
- + " 事件源: " + source.getText()
- + " (选择对象" + getClassName(source) + ")" ;
- output.append(s + newline);
- }
- /**
- *方法说明:监听检查盒菜单选择项
- *输入参数:ItemEvent e 检查盒触发的事件
- *返回类型:
- */
- public void itemStateChanged(ItemEvent e) {
- JMenuItem source = (JMenuItem)(e.getSource());
- String s = "菜单项监听"
- + newline
- + " 事件源: " + source.getText()
- + " (选择对象 " + getClassName(source) + ")"
- + newline
- + " 新的状态: "
- + ((e.getStateChange() == ItemEvent.SELECTED) ?
- "选择" : "不选择" );
- output.append(s + newline);
- }
- /**
- *方法说明:获得类的名字
- *输入参数:
- *返回类型:
- */
- protected String getClassName(Object o) {
- String classString = o.getClass().getName();
- int dotIndex = classString.lastIndexOf( "." );
- return classString.substring(dotIndex+ 1 );
- }
- /**
- *方法说明:根据路径查找图片
- *输入参数:String path 图片的路径
- *返回类型:ImageIcon 图片对象
- */
- protected static ImageIcon createImageIcon(String path) {
- java.net.URL imgURL = MenuDemo.class .getResource(path);
- if (imgURL != null ) {
- return new ImageIcon(imgURL);
- } else {
- System.err.println("Couldn't find file: " + path);
- return null ;
- }
- }
- public static void main(String[] args) {
- JFrame.setDefaultLookAndFeelDecorated(true );
- //创建一个窗体
- JFrame frame = new JFrame( "MenuDemo" );
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- //创建菜单,并添加到面板中
- MenuDemo demo = new MenuDemo();
- frame.setJMenuBar(demo.createMenuBar());
- frame.setContentPane(demo.createContentPane());
- //生成弹出菜单
- demo.createPopupMenu();
- //显示窗体
- frame.setSize(450 , 260 );
- frame.setVisible(true );
- }
- //弹出菜单监听类
- class PopupListener extends MouseAdapter {
- JPopupMenu popup;
- PopupListener(JPopupMenu popupMenu) {
- popup = popupMenu;
- }
- public void mousePressed(MouseEvent e) {
- maybeShowPopup(e);
- }
- public void mouseReleased(MouseEvent e) {
- maybeShowPopup(e);
- }
- private void maybeShowPopup(MouseEvent e) {
- if (e.isPopupTrigger()) {
- popup.show(e.getComponent(),
- e.getX(), e.getY());
- }
- }
- }
- }
- package test20;
- import javax.swing.JToolBar;
- import javax.swing.JButton;
- import javax.swing.ImageIcon;
- import javax.swing.JFrame;
- import javax.swing.JTextArea;
- import javax.swing.JScrollPane;
- import javax.swing.JPanel;
- import java.net.URL;
- import java.awt.*;
- import java.awt.event.*;
- /**
- * Title: 工具栏演示
- * Description: 提供一个工具栏,包括“打开”、“保存”、“搜索”工具按钮
- * Filename: ToolBarDemo.java
- */
- public class ToolBarDemo extends JPanel
- implements ActionListener {
- private static final long serialVersionUID = 1L;
- protected JTextArea textArea;
- protected String newline = "\n" ;
- static final private String OPEN = "OPEN" ;
- static final private String SAVE = "SAVE" ;
- static final private String SEARCH = "SEARCH" ;
- /**
- *方法说明:构造器
- *输入参数:
- *返回类型:
- */
- public ToolBarDemo() {
- super ( new BorderLayout());
- //创建工具栏
- JToolBar toolBar = new JToolBar();
- addButtons(toolBar);
- //创建一个文本域,用来输出一些信息
- textArea = new JTextArea( 15 , 30 );
- textArea.setEditable(false );
- JScrollPane scrollPane = new JScrollPane(textArea);
- //安放成员
- setPreferredSize(new Dimension( 450 , 110 ));
- add(toolBar, BorderLayout.PAGE_START);
- add(scrollPane, BorderLayout.CENTER);
- }
- /**
- *方法说明:构建工具栏
- *输入参数:JToolBar toolBar 工具条
- *返回类型:
- */
- protected void addButtons(JToolBar toolBar) {
- JButton button = null ;
- //第一个按钮,“打开”
- button = makeNavigationButton("Open16" , OPEN,
- "打开一个文件!" ,
- "打开" );
- toolBar.add(button);
- //第二个按钮,“保存”
- button = makeNavigationButton("Save16" , SAVE,
- "保存当前文件!" ,
- "保存" );
- toolBar.add(button);
- //第三个按钮,“搜索”
- button = makeNavigationButton("Search16" , SEARCH,
- "搜索文件中的字符!" ,
- "搜索" );
- toolBar.add(button);
- }
- /**
- *方法说明:构造工具栏上的按钮
- *输入参数:
- *返回类型:
- */
- protected JButton makeNavigationButton(String imageName,
- String actionCommand,
- String toolTipText,
- String altText) {
- //搜索图片
- String imgLocation = "images/"
- + imageName
- + ".gif" ;
- URL imageURL = ToolBarDemo.class .getResource(imgLocation);
- //初始化工具按钮
- JButton button = new JButton();
- //设置按钮的命令
- button.setActionCommand(actionCommand);
- //设置提示信息
- button.setToolTipText(toolTipText);
- button.addActionListener(this );
- if (imageURL != null ) { //找到图像
- button.setIcon(new ImageIcon(imageURL));
- } else { //没有图像
- button.setText(altText);
- System.err.println("Resource not found: "
- + imgLocation);
- }
- return button;
- }
- /**
- *方法说明:事件监听
- *输入参数:
- *返回类型:
- */
- public void actionPerformed(ActionEvent e) {
- String cmd = e.getActionCommand();
- String description = null ;
- if (OPEN.equals(cmd)) { //点击第一个按钮
- description = "打开一个文件操作!" ;
- } else if (SAVE.equals(cmd)) { //点击第二个按钮
- description = "保存文件操作" ;
- } else if (SEARCH.equals(cmd)) { //点击第三个按钮
- description = "搜索字符操作" ;
- }
- displayResult("如果这里是真正的程序,你将进入: "
- + description);
- }
- protected void displayResult(String actionDescription) {
- textArea.append(actionDescription + newline);
- }
- public static void main(String[] args) {
- JFrame.setDefaultLookAndFeelDecorated(true );
- //定义窗体
- JFrame frame = new JFrame( "ToolBarDemo" );
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- //定义面板
- ToolBarDemo newContentPane = new ToolBarDemo();
- newContentPane.setOpaque(true );
- frame.setContentPane(newContentPane);
- //显示窗体
- frame.pack();
- frame.setVisible(true );
- }
-
}
相关推荐
"100个Java经典例子后端- Java"这个资源显然旨在帮助开发者通过实践加深对Java的理解,尤其在后端开发领域。下面我们将深入探讨这些经典例子可能涵盖的知识点。 1. **基础语法**: 包括变量声明、数据类型(如基本...
Java 是一种广泛使用的高级编程语言,它提供了强大的功能和灵活的编程模型。本文将对 Java 编程语言的基础知识点进行总结,涵盖 Java 语言的基本概念、数据类型、变量、运算符、控制结构、数组、方法等。 1. Java ...
"java100个经典例子"提供了丰富的示例代码,帮助初学者逐步进阶。以下是对几个例子的详细解释: 1. **第一个Java程序**: 这是每个Java初学者都会遇到的第一个Hello World程序,展示了Java程序的基本结构。`public...
Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典算法例子,Java 经典...
《JAVA经典100个小案例》是一份专为初学者设计的Java编程资源,它包含了100个精心挑选的实例,旨在帮助新手快速掌握Java编程的基础知识。这些案例覆盖了Java语言的核心概念,包括数据类型、控制结构、类与对象、数组...
"164个java经典代码案例"提供了丰富的实践资源,帮助开发者深入理解和掌握Java编程的核心概念和技术。这些案例覆盖了从基础语法到高级特性的各种应用场景,是提升编程技能和解决实际问题的宝贵资料。 首先,基础...
这个“Java语言十大经典案例”涵盖了Java的核心特性,包括文件与流、多线程、网络编程以及异常处理等重要概念。以下是对这些知识点的详细说明: 1. **文件与流**: 文件操作是程序处理数据的基本方式。Java提供了...
"140个Java经典案例"这个压缩包文件显然是一份丰富的学习资源,旨在帮助初学者和有经验的开发者深入理解和掌握Java编程。下面将根据标题、描述以及标签来解析这些知识点。 1. **基础概念**: - 类与对象:Java的...
100个Java经典编程实例源代码100个Java经典编程实例源代码100个Java经典编程实例源代码100个Java经典编程实例源代码100个Java经典编程实例源代码100个Java经典编程实例源代码
这个名为“java经典10个例子”的压缩包很可能包含了十个能够帮助初学者和有经验的开发者更好地理解和运用Java语言的关键示例。以下是这十个例子可能涵盖的知识点: 1. **Hello, World!** - 这是每个编程语言的入门...
在“Java经典案例”这个资源中,我们很可能会找到一系列针对初学者和高级开发者的学习材料,帮助他们理解和应用Java语言的各种特性。这些案例可能涵盖了从基础语法到复杂的设计模式,涉及了Java开发的多个方面。 ...
Java作为世界上最流行的编程语言之一,拥有众多的经典案例,这些案例不仅展示了Java的强大功能,也帮助开发者深入理解其核心概念和编程技巧。以下是对"Java十大经典案例"的详细解析: 1. **银行账户管理系统**:这...
Java教程中的100个经典案例源代码涵盖了Java编程的多个重要方面,是学习和提升Java技能的宝贵资源。这些案例旨在帮助初学者巩固基础知识,同时也为有经验的开发者提供实战参考。以下将对这些案例可能涉及的知识点...
在Java编程语言的世界里,经典的案例是学习和理解其核心概念、设计模式和最佳实践的重要途径。这些案例不仅有助于新手入门,也能让有经验的开发者深入挖掘Java的潜力。以下是一些Java中的十大经典案例,它们涵盖了...
【标题】"120套java经典案例库"揭示了这个资源包的主旨,它包含了一百二十个Java编程的经典实例,旨在帮助开发者通过实践学习和掌握Java编程技术。这些案例可能涵盖了各种Java应用领域,从基础语法到高级特性,为...
Java作为一门广泛使用的编程语言,其经典案例是学习者深入理解和掌握Java技术的重要途径。"Java十大经典案例"涵盖了Java的基础知识,对于初学者来说,这些案例提供了丰富的实践机会,帮助他们将理论知识转化为实际...