⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 13.txt

📁 电子工业出版社出版的《java2应用开发指南》配套光盘源代码
💻 TXT
📖 第 1 页 / 共 4 页
字号:
    	setVisible(true);
    }
    //应用程序的入口方法
	public static void main(String args[]) 
	{
		 RadioButtonDemo frame = new RadioButtonDemo();
		 //添加框架窗口的事件监听(监听关闭框架窗口事件)
		 frame.addWindowListener(new WindowAdapter() {
		    public void windowClosing(WindowEvent e) {
		        //正常推出Java虚拟机
		        System.exit(0);
		    }
		});
	}
}



例程13-9
//TextFieldDemo.java
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
import java.awt.event.*;
public class TextFieldDemo extends JFrame
{
	public TextFieldDemo()
    {
        //获取内容窗格容器
        Container contentPane= this.getContentPane();
        //设置内容窗格容器的布局管理器为FlowLayout
        contentPane.setLayout(new FlowLayout());
        //内容窗格容器中加入两个文本组件,第一个只能输入数字        
        DigitalText txtDigitalText = new DigitalText(10);
	    JTextField txtNormal = new JTextField(10);
	    contentPane.add(txtDigitalText);
        contentPane.add(txtNormal);
        //显示框架窗口
		pack();
    	setVisible(true);
    }
	//应用程序的入口方法
	public static void main(String args[]) 
	{
		 TextFieldDemo frame = new TextFieldDemo();
		 //添加框架窗口的事件监听(监听关闭框架窗口事件)
		 frame.addWindowListener(new WindowAdapter() {
		    public void windowClosing(WindowEvent e) {
		        //正常推出Java虚拟机
		        System.exit(0);
		    }
		});
	}
}
//该类从JTextField中派生,只允许用户输入数字
class DigitalText extends JTextField
{
   	//构造方法
    public DigitalText()
    {
    }
	//构造方法
   	public DigitalText( int column)
    {
    	super(column);
    }
    //构造方法
    public DigitalText(String strText, int column)
    {
        super(strText,column);
    }
	//重写方法,用于创建Document模型
    protected Document createDefaultModel()
    {
        //TODO: Override this javax.swing.JTextField method
        return new DigitalTextDocument();
    }
	class DigitalTextDocument extends PlainDocument
	{
	    //用于检查用户输入的字符以确保插入的字符是有效的数字字符
public void insertString( int offs, String str, AttributeSet a) 
	    						throws BadLocationException
	    {
	        if( str == null ) return;
	        try{
	            Integer.parseInt(str);
	            super.insertString(offs,str,a);
	        }
	        catch ( NumberFormatException e){
	            JOptionPane.showMessageDialog(null,
	                        "请输入数字。",
	                        "验证错误",
	                        JOptionPane.ERROR_MESSAGE);	            
	        }
	    }
	}
}



例程13-10
//TextAreaDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
import java.io.FileReader;
public class TextAreaDemo extends JFrame 
{
	private JTextArea textArea = new JTextArea();
	private Container contentPane = getContentPane();
	public TextAreaDemo() 
	{
		//设置框架窗口标题
		super("JTextArea Demo");
		//读TextAreaDemo.java文件的内容并存入textArea组件中
		readFile(textArea, "TextAreaDemo.java");
		//创建功能面板并加入内容窗格的上部
		contentPane.add(new ControlPanel(), BorderLayout.NORTH);
		//创建滚动面板并加入内容窗格的中部
		contentPane.add(new JScrollPane(textArea),BorderLayout.CENTER);
		//显示框架窗口
		setSize(400,300);
		setVisible(true);
	}
	//应用程序的入口方法
	public static void main(String args[]) 
	{
		 TextAreaDemo frame=new TextAreaDemo();
		 //添加框架窗口的事件监听(监听关闭框架窗口事件)
		 frame.addWindowListener( new WindowAdapter() {
		    public void windowClosing(WindowEvent e) {
		        //正常推出Java虚拟机
		        System.exit(0);
		    }
		});
	}
	//读取文件名称为s的内容并存入textComponent文本组件中
	private void readFile(JTextComponent textComponent,String s) 
	{
		try 
		{ 
			(new DefaultEditorKit()).read(
			   new FileReader(s), textComponent.getDocument(), 0);
		} 
		catch(Exception ex) 
		{ 
			ex.printStackTrace(); 
		}
	}
	//封装功能控制面板,里面包含三个JRadioButton组件
	class ControlPanel extends JPanel 
	{ 
		//创建三个JRadioButton组件
		JRadioButton radioButtons[] = new JRadioButton[] 
		{
			new JRadioButton("wrap off"),
			new JRadioButton("wrap characters"),
			new JRadioButton("wrap words"),
		};
		public ControlPanel() 
		{
			ButtonGroup group = new ButtonGroup();
			//动作事件监听器
			Listener listener = new Listener();
			for(int i=0; i < radioButtons.length; ++i) 
			{
				//注册JRadioButton组件的动作监听器
				radioButtons[i].addActionListener(listener);
				group.add(radioButtons[i]);
				add(radioButtons[i]);
				if(i == 0) radioButtons[i].setSelected(true); // "wrap off"
			}
		}
		//JRadioButton的事件监听器实现类
		class Listener implements ActionListener 
		{
			public void actionPerformed(ActionEvent e) 
			{
				//获取事件的动作命令字符串(默认是组件的标题文本)
				String action = e.getActionCommand();
				//设置多行文本域的右边界换行
				textArea.setLineWrap(!action.equals("wrap off"));
				//设置词为边界换行
				textArea.setWrapStyleWord(action.equals("wrap words"));			
			}
		};
	}
}



例程13-11
//SimpleListDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SimpleListDemo extends JFrame 
{
	public SimpleListDemo ()
	{
		//设置框架窗口标题
		super("Swing List Demo");		
		String[] data = {
			"Item one", " Item two", " Item three", " Item four",
			"Item five", " Item six", " Item seven", " Item eight",
			"Item night", " Item ten", " Item elevent", " Item twelve",
			};
		JList m_SimpleList = new JList(data);
		//上面的代码等价于下面的两行代码
		// JList m_SimpleList = new JList();
		// m_SimpleList.setListData(data);
		//把列表组件放入滚动面板中来实现滚动功能
		JScrollPane ps = new JScrollPane(m_SimpleList);
		getContentPane().add(ps, BorderLayout.CENTER);
		//显示框架窗口
		setSize(500, 240);
		setVisible(true);
	}
	//应用程序的入口方法
	public static void main(String args[]) 
	{
		 SimpleListDemo frame=new SimpleListDemo();
		 //添加框架窗口的事件监听(监听关闭框架窗口事件)
		 frame.addWindowListener( new WindowAdapter() {
		    public void windowClosing(WindowEvent e) {
		        //正常推出Java虚拟机
		        System.exit(0);
		    }
		});
	}
}



例程13-12
//CheckListDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CheckListDemo extends JFrame 
{
	public CheckListDemo ()
	{
		//设置框架窗口标题
		super("Swing List Demo");
		String[] data = {
			"Item one", " Item two", " Item three", " Item four",
			"Item five", " Item six", " Item seven", " Item eight",
			"Item night", " Item ten", " Item elevent", " Item twelve",
			};
		//创建JList实例
		JList m_SimpleList = new JList(data);
		//设置JLIst的定制绘制器
		m_SimpleList.setCellRenderer(new CustomerCellRender());
		//把列表组件放入滚动面板中来实现滚动功能
		JScrollPane ps = new JScrollPane(m_SimpleList);
		getContentPane().add(ps, BorderLayout.CENTER);
		//显示框架窗口
		setSize(200, 240);
		setVisible(true);
	}
	//应用程序的入口方法
	public static void main(String args[]) 
	{
		 CheckListDemo frame=new CheckListDemo();
		 //添加框架窗口的事件监听(监听关闭框架窗口事件)
		 frame.addWindowListener( new WindowAdapter() {
		    public void windowClosing(WindowEvent e) {
		        //正常推出Java虚拟机
		        System.exit(0);
		    }
		});
	}
}
/**
 * Cell Render for List used to paint customer List.
 */
class CustomerCellRender extends JCheckBox implements ListCellRenderer
{
    public Component getListCellRendererComponent(
                            JList list,
                            Object value,
                            int index,
                            boolean isSelected,
                            boolean cellHasFocus)
    {
        //设置背景色
        setBackground(isSelected ? list.getSelectionBackground() : list.getBackground());
    	//设置前景色
    	setForeground(isSelected ? list.getSelectionForeground() : list.getForeground());
        //设置显示的文本内容
        this.setText(value.toString());
        return this;
    }
}



例程13-13
//IconCombox.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class IconCombox extends JComboBox
{
	//构造方法
	public IconCombox(ImageIcon[] img, String[] strText)
	{	
		//获取两个数组的大小的最小值,防止二者不一致,导致越界
		int nItemCount=Math.min(img.length,strText.length);
		ItemData[] objList=new ItemData[nItemCount];
		for( int i=0; i< nItemCount; i++ ){
			objList[i]=new ItemData(img[i],strText[i]);
		}		
		//设置数据模型
		this.setModel(new DefaultComboBoxModel(objList));
		//设置定制单元绘制器
		this.setRenderer(new IconComboRenderer());
	}	
	/*
	*  封装列表单元项包括图标和显示字符串
	*/
	class ItemData
	{
	    private ImageIcon   img;
	    private String strText;	    
	    //构造函数,直接继承父类
	    public ItemData(ImageIcon icon, String text)
	    {
			img=icon;
			strText=text;
	    }		    

	    //获取显示名
	    public String getText( )
	    {
	        return strText;
	    }	
	    //获取图标对象
	    public Icon getIcon()
	    {
			return img;
	    }
	    //类字符串化
	    public String toString()
	    {
	    	return strText;
	    }
	}	
	/**
	 * <pre>
	 * 用于绘制ComboBox的单元项,该绘制器对应的Model的每一项是一个
* 对象数组,包括String和Icon.
	 * </pre>
	 */
	class IconComboRenderer extends JLabel implements ListCellRenderer
	{
	    //获得和失去焦点时绘制器使用的border.
	    private Border lineBorder = BorderFactory.createLineBorder(Color.red, 4);
	    private Border emptyBorder = BorderFactory.createEmptyBorder(2,2,2,2);	
	    //构造函数,设置为透明.
	    public IconComboRenderer()
	    {
			setOpaque(true);
	    }	
	    //实现该方法,控制单元的绘制
	    public Component getListCellRendererComponent
(JList list,Object value,int index,
boolean isSelected,boolean cellHasFocus)
	    {
	        //绘制列表单元项的文本
	        setText(((ItemData)value).getText());
	        //绘制列表单元项的图标
			this.setIcon(((ItemData)value).getIcon());	
	        //根据选择状态的不同,对前、背景进行选择设置
			if(isSelected)
			{
		  	    setForeground(list.getSelectionForeground());

			    setBackground(list.getSelectionBackground());
			}
			else
			{
			    setForeground(list.getForeground());
			    setBackground(list.getBackground());
			}		
			//根据焦点状态的不同,对边框进行设置
		    if(cellHasFocus) setBorder(lineBorder);
			else    setBorder(emptyBorder);		
			return this;
	    }
	}
}



例程13-14
//ComboBoxDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ComboBoxDemo extends JFrame 
{
	//构造图标数组
	ImageIcon[] icons = new ImageIcon[]{
		new ImageIcon("flight.gif"),
		new ImageIcon("flight.gif"),
		new ImageIcon("flight.gif")
	};
	//构造显示字符串数组
	String[] texts=new String[]{
		"Item one",
		"Item two",
		"Item three",
	};
	//用图标数组和字符串数组构造定制的组合框组件
	IconCombox cboButton = new IconCombox(icons,texts);			
	public ComboBoxDemo() 
	{
		//设置框架窗口标题
    	super("JComboBox Demo");
		//获取内容窗格容器
	    Container contentPane = getContentPane();
		//设置内容窗格容器的布局管理器为FlowLayout
		contentPane.setLayout(new FlowLayout());
		//把四个JButton组件加入到内容窗格容器中
		contentPane.add(cboButton);		
		//显示框架窗口
		setSize(400,200);
    	setVisible(true);
	}
	//应用程序的入口方法
	public static void main(String args[]) 
	{
		 ComboBoxDemo frame=new ComboBoxDemo();
		 //添加框架窗口的事件监听(监听关闭框架窗口事件)
		 frame.addWindowListener(new WindowAdapter() {
		    public void windowClosing(WindowEvent e) {
		        //正常推出Java虚拟机
		        System.exit(0);
		    }
		});
	}
}



例程13-15
//ProgressBarDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ProgressBarDemo extends JFrame
{
    protected int m_min = 0;
    protected int m_max = 100;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -