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

📄 13.txt

📁 电子工业出版社出版的《java2应用开发指南》配套光盘源代码
💻 TXT
📖 第 1 页 / 共 4 页
字号:
    protected int m_counter = 0;
    protected JProgressBar jpb;

	public ProgressBarDemo() 
	{
		super("JProgressBar Demo");		
        jpb = new JProgressBar();
        jpb.setMinimum(m_min);
        jpb.setMaximum(m_max);
        jpb.setStringPainted(true);

        JButton start = new JButton("开始");
        //添加按钮的事件监听器
        start.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
           	//启动一个线程
           	new UpdateThread().start();
          }
        });        
		getContentPane().add(jpb, BorderLayout.CENTER);
        getContentPane().add(start, BorderLayout.WEST);		
		//显示框架窗口
		setSize(300,70);
		setVisible(true);
	}
	//应用程序的入口方法
	public static void main(String args[])
	{
		 ProgressBarDemo frame=new ProgressBarDemo();
		 //添加框架窗口的事件监听(监听关闭框架窗口事件)
		 frame.addWindowListener(new WindowAdapter() {
		    public void windowClosing(WindowEvent e) {
		        //正常推出Java虚拟机
		        System.exit(0);
		    }
		});
	}
	//用于完成更新进度条的值和耗时任务的线程
	class UpdateThread extends Thread
	{
		Runnable runme;		
		public UpdateThread()
		{
			runme=new Runnable(){
				public void run(){
					//更新进度条的值
                    jpb.setValue(m_counter);
				} 	
			};
		}
		public void run()
		{
			m_counter = m_min;
            while (m_counter <= m_max) {
              SwingUtilities.invokeLater(runme);
              m_counter++;
              try { 
                Thread.sleep(500); //睡眠0.5秒,模拟耗时任务的处理
              } 
              catch (Exception ex) {}
            }
		}
	}
}



例程13-16
//SliderDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class SliderDemo extends JFrame 
{	
	public SliderDemo() 
	{
		//设置框架窗口标题
    	super("JSlider Demo");
		//获取内容窗格容器
	    Container contentPane = getContentPane();
		//默认是0~100
		JSlider slider=new JSlider();
		//为滑杆组件绘制标签
		slider.setPaintLabels(true);
		//滑杆组件的间隔为20
		slider.setMajorTickSpacing(20);
		//设置内容窗格容器的布局管理器为FlowLayout
		contentPane.setLayout(new FlowLayout());
		//把滑杆组件加入到内容窗格容器中
		contentPane.add(slider);
		
		//显示框架窗口
		pack();
    	setVisible(true);
	}
	//应用程序的入口方法
	public static void main(String args[]) 
	{
		 SliderDemo frame=new SliderDemo();
		 //添加框架窗口的事件监听(监听关闭框架窗口事件)
		 frame.addWindowListener(new WindowAdapter() {
		    public void windowClosing(WindowEvent e) {
		        //正常推出Java虚拟机
		        System.exit(0);
		    }
		});
	}
}



例程13-17
//获取内容窗格容器
Container contentPane = getContentPane();
//创建一个垂直的分割条组件
JSeparator s=new JSeparator(JSeparator.VERTICAL);
//获取分割条组件的首选大小
Dimension ps= s.getPreferredSize();
//设置内容窗格容器的布局管理器
contentPane.add(new FlowLayout());
//把Button加入到内容窗格容器的左边
contentPane.add(new JButton(“Left”));
//把分割条组件加入内容窗格容器的中间
contentPane.add(s);
//把Button加入到内容窗格容器的右边
contentPane.add( new JButton(“Right”));
//设置分割条组件的首选大小
s.setPreferredSize(new Dimension(ps.width,50));



例程13-18
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
public class TableColumnDemo extends JFrame 
{	
	String[] strTableTitle={"第一列", "第二列", "第三列","第四列","第五列 "};
	String[][] strTableData={
		{"(1,1)","(1,2)","(1,3)","(1,4)","(1,5)"},
		{"(2,1)","(2,2)","(2,3)","(2,4)","(2,5)"},
		{"(3,1)","(3,2)","(3,3)","(3,4)","(3,5)"},
		{"(4,1)","(4,2)","(4,3)","(4,4)","(4,5)"}
	};
	JTable table = new JTable(strTableData,strTableTitle);
	public TableColumnDemo() 
	{
		Container cp = getContentPane();
		cp.add(new JScrollPane(table), BorderLayout.CENTER);
		cp.add(new ControlPanel(), BorderLayout.NORTH);
		//显示框架窗口
		setSize(400,300);
		setVisible(true);
	}
	//功能控制面板类
	class ControlPanel extends JPanel 
	{
		private JCheckBox checkBox = new JCheckBox("显示第三列");
		//获取列表模型
		TableColumnModel tcm = table.getColumnModel();
		//第三列设置为隐藏列
		TableColumn hideColumn = table.getColumn("第三列");
		
		public ControlPanel() 
		{

			checkBox.setSelected(true);
			add(checkBox);
			checkBox.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent event) 
				{
					if(checkBox.isSelected()) {
						//把隐藏列添加到列表模型中,
						tcm.addColumn(hideColumn);
						//把添加的隐藏列移动到第三列位置
						tcm.moveColumn(4,2);
					}
					else {
						//隐藏第三列
						tcm.removeColumn(hideColumn);
					}
					//由于JTable的Bug,下面的代码行必须调用
					table.sizeColumnsToFit(-1);
				}
			});
		}
	}

	public static void main(String args[]) 
	{
		 TableColumnDemo frame=new TableColumnDemo();
		 //添加框架窗口的事件监听(监听关闭框架窗口事件)
		 frame.addWindowListener( new WindowAdapter() {
		    public void windowClosing(WindowEvent e) {
		        //正常推出Java虚拟机
		        System.exit(0);
		    }
		});

	}
}



例程13-19
//TableDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class TableDemo
{
	//程序的入口方法
	public static void main(String[] args)
	{
		JFrame frame = new JFrame("Table");
		frame.addWindowListener( new WindowAdapter() {
			public void windowClosing(WindowEvent e)
			{
				//正常退出Java虚拟机
				System.exit(0);
			}
		} );
		// 创建带有背景的表格组件
		ImageTable table = new ImageTable( 15, 3 );
		//给表格组件的每个单元设置坐标值
		for( int i=0; i<table.getRowCount(); i++ ){
			for( int j=0; j< table.getColumnCount(); j++ ){
				table.setValueAt("(" + i+ "," +j+ ")",i,j);
			}
		}
		//把表格组件加入滚动面板中
		JScrollPane sp = new JScrollPane( table );
		//将滚动面板加入框架窗口中
		frame.getContentPane().add( sp );
		//显示框架窗口
		frame.pack();
		frame.show();
	}
}
/*
 * 一个定制的表格组件,其背景为图片
*/
class ImageTable extends JTable
{
	// 要设置的表格的背景图片,可以替换成自己喜爱的图片.
	ImageIcon image = new ImageIcon( "clouds.jpg" );
	//表格组件的构造方法
	public ImageTable(int rows, int cols)
	{
		super(rows,cols);		
	}
	public ImageTable(Object[][] rowData, Object[] columnNames)
	{
		super(rowData,columnNames);		
	}
	public ImageTable(java.util.Vector rowData, java.util.Vector columnNames)
	{
		super(rowData,columnNames);		
	}
	public ImageTable(TableModel row, TableColumnModel column)
	{
		super(row,column);		
	}
	public ImageTable(TableModel model)
	{
		super(model);		
	}
	//准备绘制器
	public Component prepareRenderer(TableCellRenderer renderer, int row, int column) 
	{
		Component c = super.prepareRenderer( renderer, row, column);
		// We want renderer component to be transparent so background image is visible
		if( c instanceof JComponent )
			((JComponent)c).setOpaque(false);
		return c;
	}
	//绘制表格组件	
	public void paint( Graphics g )
	{
		// 设置表格组件的背景是透明的
		setOpaque(false);
		//获取表格组件的大小
		Dimension d = getSize();
		// 用平铺方式画背景图片
		for( int x = 0; x < d.width; x += image.getIconWidth() )
			for( int y = 0; y < d.height; y += image.getIconHeight() )
				g.drawImage( image.getImage(), x, y, null, null );
		//调用父类的方法
		super.paint(g);
	}				
}



例程13-20
//TreeNodeDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;

public class TreeNodeDemo extends JFrame 
{
	protected JTree  m_tree ;
	protected JTextField m_display;

	public TreeNodeDemo()
	{
		super("SNMP Tree [OID]");		
		//创建树的根节点(第一层节点)
		DefaultMutableTreeNode top = new DefaultMutableTreeNode(
			new OidNode(1, "ISO"));
		DefaultMutableTreeNode parent = top;
		//创建树根节点的子节点(第二层节点)
		DefaultMutableTreeNode node = new DefaultMutableTreeNode(new OidNode(0, "standard"));
		parent.add(node);
		node = new DefaultMutableTreeNode(new OidNode(2,"member-body"));
		parent.add(node);
		node = new DefaultMutableTreeNode(new OidNode(3, "org"));
		parent.add(node);
		parent = node;

		//创建第二层节点的子节点(第三层节点)
		node = new DefaultMutableTreeNode(new OidNode(6, "dod"));
		parent.add(node);
		parent = node;
		//创建第三层节点的子节点(第四层节点)
		node = new DefaultMutableTreeNode(new OidNode(1,"internet"));
		parent.add(node);
		parent = node;
		//创建第四层节点的子节点(第五层节点)
		node = new DefaultMutableTreeNode(new OidNode(1,"directory"));
		parent.add(node);
		node = new DefaultMutableTreeNode(new OidNode(2,"mgmt"));
		parent.add(node);
		node.add(new DefaultMutableTreeNode(new OidNode(1, "mib-2")));
		node = new DefaultMutableTreeNode(new OidNode(3,"experimental"));
		parent.add(node);
		node = new DefaultMutableTreeNode(new OidNode(4,"private"));
		node.add(new DefaultMutableTreeNode(new OidNode(1,"enterprises")));
		parent.add(node);
		node = new DefaultMutableTreeNode(new OidNode(5,"security"));
		parent.add(node);
		node = new DefaultMutableTreeNode(new OidNode(6,"snmpV2"));
		parent.add(node);
		node = new DefaultMutableTreeNode(new OidNode(7,"mail"));
		parent.add(node);
		
		//以树的根节点构造整个树
		m_tree = new JTree(top);
		//display root handle of tree
		m_tree.setShowsRootHandles(true); 
		//Setting root line for Tree
		m_tree.putClientProperty("JTree.lineStyle", "Angled");
		//设置树的树节点是不可编辑的
		m_tree.setEditable(false);
		//添加监视树的鼠标事件
		m_tree.addMouseListener(new MouseAdapter(){
            public void mouseClicked(MouseEvent e){
                tvwTreeView_mouseClicked(e);
            }
        });        
		//把树组件加入到滚动面板中
		JScrollPane s = new JScrollPane(m_tree);
		getContentPane().add(s, BorderLayout.CENTER);

		m_display = new JTextField();
		m_display.setEditable(false);
		getContentPane().add(m_display, BorderLayout.SOUTH);
		//显示框架窗口
		setSize(400, 300);
		setVisible(true);
	}
	public static void main(String argv[]) 
	{
		TreeNodeDemo frame=new TreeNodeDemo();
		
		frame.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e) 
			{
				System.exit(0);
			}
		});
	}
	//处理树组件的鼠标单击事件
	private void tvwTreeView_mouseClicked(MouseEvent e)
	{
		//获取鼠标在树组件中选择位置的树的路径
		TreePath path = m_tree.getPathForLocation(e.getX(),e.getY());
		//如果鼠标没有选择树节点上,则直接返回
		if( path == null ) return;
		//获取当前树路径的存储的树节点对象的数组(从根节点到当前树节点)
		Object[] nodes = path.getPath();
			String oid = "";
			for (int k=0; k<nodes.length; k++)
			{
				//强制转化成树节点
				DefaultMutableTreeNode node = (DefaultMutableTreeNode)nodes[k];
				//从树节点中获取其用户对象(OidNode的实例)
				OidNode nd = (OidNode)node.getUserObject();
				//把用户对象的对象名称进行累积
				oid += "."+nd.getName();
			}
			m_display.setText(oid);
	}
}
//树的用户对象类(UserObject),用于封装SNMP的OID
class OidNode
{
	//对象标识
	private int    m_id;
	//对象名称
	private String m_name;
	//构造方法
	public OidNode(int id, String name)
	{
		m_id = id;
		m_name = name;
	}
	//获取对象标识
	public int getId() 
	{
		return m_id;
	}
	//得到对象名称
	public String getName() 
	{
		return m_name;
	}
	//用户对象的字符串化,这个方法重写了Object.toString()
	public String toString() 
	{
		return m_name;
	}
}



例程13-21
//MenuDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MenuDemo extends JFrame
{
	public MenuDemo(String strTitle)
	{
		//设置框架窗体标题
		super(strTitle);		
		//创建菜单条并加入到框架窗体中
		JMenuBar mnuMenuBar=new JMenuBar();
		this.setJMenuBar( mnuMenuBar );
		//创建File菜单和相应的菜单项
		JMenu mnuFile= new JMenu("文件(F)");
		JMenuItem mnuFileNew=new JMenuItem ("新建");

⌨️ 快捷键说明

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