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

📄 s08.htm

📁 java图形设计卷2 swing
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<SCRIPT LANGUAGE="JavaScript" SRC="/-fs0/sys/pop-up.js"></SCRIPT><SCRIPT LANGUAGE="JavaScript" SRC="/-fs0/sys/pop-up-all.js"></SCRIPT><html><head><title>易都网--Java 2 图形设计卷Ⅱ:SWING</title><LINK rel="stylesheet" href="../../../_public/javaa.css"><meta http-equiv="Content-Type" content="text/html; charset=GBK"><script language="JavaScript" src="../../../_public/javaa.js"></script><meta name="keywords" content="Java,JSP,ASP,PHP,J2EE,EJB,JavaScript,C/C++,ASM,CSS,HTML,XML,网络安全,MySQL,ACCESS"></head><body bgcolor="#FFFFFF"><table border=0 cellpadding=0 cellspacing=0 width="100%">  <tbody>   <script language="javascript">print2()</script>  <tr>     <td width="100%">       <table bgcolor=#EEEEEE border=0 cellpadding=3 cellspacing=0 width="100%">        <tbody>         <tr>           <td class=f1 id=thetd width="100%">             <p>[<a href="index.html" target="_self">目录</a>][<a href="s07.htm">上一页</a>][<a href="s09.htm">下一页</a>]第二部分               Swing组件</p>            <p align="center"><b>第8章 标签与按钮</b></p>            <p>  Swing的标签和按钮分别用JLabel和JButton类表示,它们是能够显示文本或图标的简单组件。缺省时,标签没有边框,可以显示一个字符串,一个图标或同时显示字符串和图标。除了用于修饰文本域等不重要的小事情外,Swing的标签还能起到图像画布(显示一个图像的组件)的作用。由于AWT的图像不是组件,不能把它们添加到一个容器中。因此,使用AWT的开发人员实现了各种不同的图像画布类;然而,在Swing中,可以把JLabel类当作图像画面使用(注:有关图像画面的更多信息参见4.3.1“Swing组件中的定制绘制”一节)。<br>                按钮大概是使用最为普遍的用户界面组件。按钮通常带有某种边框,且可以被鼠标或快捷键激活。Swing按钮比Swing标签要复杂得多,不仅因为能够激活它们来完成某个功能,而且很多其他Swing组件都是AbstractButton类的扩展,而AbstractButton类是Swing按钮的基类。             </p>            <p> <b>8.1 JLabel与JBution</b></p>            <p>&nbsp;</p>            <p> <b>8.2 JLabel</b></p>            <p align="center"><b>例8-1 运行中的JLabel</b></p>            <hr noshade size="1"><pre>import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Test extends JApplet {	public Test() {		Container contentPane = getContentPane();		JLabel imageOnly = new JLabel(new ImageIcon(this.getClass().getResource("dogs.gif")));		JLabel textAndImage = new JLabel("Vote!", 						new ImageIcon(this.getClass().getResource("ballot_box.gif")),						JLabel.RIGHT);		JScrollPane scrollPane = new JScrollPane(imageOnly);		scrollPane.setPreferredSize(new Dimension(270,200));		contentPane.setLayout(			new FlowLayout(FlowLayout.CENTER, 25, 25));		contentPane.add(textAndImage);		contentPane.add(scrollPane);	}}</pre>            <hr noshade size="1">            <p><br>            </p>            <p> <b>8.2.1 内容排列</b></p>            <p>&nbsp;</p>            <p align="center"><b>例8-2 设置Swing标签的排列属性</b></p>            <hr noshade size="1"><pre>import java.net.URL;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;public class Test extends JApplet implements SwingConstants {	JLabel        	label 	= new JLabel("Action!");	JPanel       	controlPanel 	= new JPanel();	JComboBox     	alignmentHorizontal 	= new JComboBox();	JComboBox 		alignmentVertical 	= new JComboBox();	public void init() {		Container contentPane = getContentPane();		ImageIcon icon = new ImageIcon(this.getClass().getResource("slate.gif"));		label.setIcon(icon);		label.setHorizontalAlignment(CENTER);		label.setFont(new Font("Times-Roman", Font.ITALIC, 20));		label.setMaximumSize(new Dimension(0, 150));		setupComboBoxes();		setupControlPanel();		contentPane.setLayout(new BorderLayout());		contentPane.add(controlPanel, "North");		contentPane.add(label, "Center");		alignmentVertical.addItemListener(new ItemListener() {			public void itemStateChanged(ItemEvent event) {				JComboBox b = (JComboBox)event.getSource();				String    s = (String)b.getSelectedItem();				int       c = getSwingConstantByName(s);				label.setVerticalAlignment(c);			}		});		alignmentHorizontal.addItemListener(new ItemListener() {			public void itemStateChanged(ItemEvent event) {				JComboBox b = (JComboBox)event.getSource();				String    s = (String)b.getSelectedItem();				int       c = getSwingConstantByName(s);								label.setHorizontalAlignment(c);			}		});	}	void setupComboBoxes() {		alignmentVertical.addItem("Top");		alignmentVertical.addItem("Center");		alignmentVertical.addItem("Bottom");		alignmentHorizontal.addItem("Left");		alignmentHorizontal.addItem("Center");		alignmentHorizontal.addItem("Right");		alignmentVertical.setSelectedItem(			getSwingConstantName(				label.getVerticalAlignment()));		alignmentHorizontal.setSelectedItem(			getSwingConstantName(				label.getHorizontalAlignment()));	}	void setupControlPanel() {		controlPanel.setBorder(			BorderFactory.createTitledBorder("Alignment"));		controlPanel.add(new JLabel(						"Vertical:"));		controlPanel.add(alignmentVertical);		controlPanel.add(Box.createHorizontalStrut(5));		controlPanel.add(Box.createHorizontalStrut(25));		controlPanel.add(new JLabel(						"Horizontal:"));		controlPanel.add(Box.createHorizontalStrut(5));		controlPanel.add(alignmentHorizontal);	}	int getSwingConstantByName(String s) {		if(s.equalsIgnoreCase("left"))        	return LEFT;		else if(s.equalsIgnoreCase("center")) 	return CENTER;		else if(s.equalsIgnoreCase("right"))  	return RIGHT;		else if(s.equalsIgnoreCase("top"))    	return TOP;		else if(s.equalsIgnoreCase("bottom")) 	return BOTTOM;		return -1;	}	String getSwingConstantName(int c) {		if(c == LEFT) 			return "Left";		else if(c == CENTER)	return "Center";		else if(c == RIGHT) 	return "Right";		else if(c == TOP) 		return "Top";		else if(c == BOTTOM) 	return "Bottom";		return "undefined";	}}</pre>            <hr noshade size="1">            <p> <b>8.2.2 文本的位置</b></p>            <p>&nbsp;</p>            <p align="center"><b>例8-3 设置标签的文本位置</b></p>            <hr noshade size="1"><pre>import java.net.URL;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;public class Test extends JApplet implements SwingConstants {	JLabel label = new JLabel("Action!");	JPanel controlPanel = new JPanel();	JComboBox alignmentHorizontal = new JComboBox();	JComboBox alignmentVertical = new JComboBox();	public void init() {		Container contentPane = getContentPane();		ImageIcon icon = new ImageIcon(this.getClass().getResource("penguin.gif"));		label.setIcon(icon);		label.setHorizontalTextPosition(CENTER);		label.setFont(new Font("Times-Roman", Font.ITALIC, 20));		setupComboBoxes();		setupControlPanel();		label.setHorizontalAlignment(JLabel.CENTER);		label.setVerticalAlignment(JLabel.CENTER);		contentPane.setLayout(new BorderLayout());		contentPane.add(controlPanel, "North");		contentPane.add(label, "Center");		alignmentVertical.addItemListener(new ItemListener() {			public void itemStateChanged(ItemEvent event) {				JComboBox b = (JComboBox)event.getSource();				String    s = (String)b.getSelectedItem();				int       c = getSwingConstantByName(s);				label.setVerticalTextPosition(c);			}		});		alignmentHorizontal.addItemListener(new ItemListener() {			public void itemStateChanged(ItemEvent event) {				JComboBox b = (JComboBox)event.getSource();				String    s = (String)b.getSelectedItem();				int       c = getSwingConstantByName(s);								label.setHorizontalTextPosition(c);			}		});	}	void setupComboBoxes() {		alignmentVertical.addItem("Top");		alignmentVertical.addItem("Center");		alignmentVertical.addItem("Bottom");		alignmentHorizontal.addItem("Left");		alignmentHorizontal.addItem("Center");		alignmentHorizontal.addItem("Right");		alignmentVertical.setSelectedItem(			getSwingConstantName(				label.getVerticalTextPosition()));		alignmentHorizontal.setSelectedItem(			getSwingConstantName(				label.getHorizontalTextPosition()));	}	void setupControlPanel() {		controlPanel.setBorder(			BorderFactory.createTitledBorder("Text Position"));		controlPanel.add(new JLabel( "Vertical:"));		controlPanel.add(alignmentVertical);		controlPanel.add(Box.createHorizontalStrut(5));		controlPanel.add(Box.createHorizontalStrut(25));		controlPanel.add(new JLabel("Horizontal:"));		controlPanel.add(Box.createHorizontalStrut(5));		controlPanel.add(alignmentHorizontal);	}	int getSwingConstantByName(String s) {		if(s.equalsIgnoreCase("left"))        	return LEFT;		else if(s.equalsIgnoreCase("center")) 	return CENTER;		else if(s.equalsIgnoreCase("right"))  	return RIGHT;		else if(s.equalsIgnoreCase("top"))    	return TOP;		else if(s.equalsIgnoreCase("bottom")) 	return BOTTOM;		return -1;	}	String getSwingConstantName(int c) {		if(c == LEFT) 			return "Left";		else if(c == CENTER)	return "Center";		else if(c == RIGHT) 	return "Right";		else if(c == TOP) 		return "Top";		else if(c == BOTTOM) 	return "Bottom";		return "undefined";	}}</pre>            <hr noshade size="1">            <p> <b>8.2.3 图标/文本间隙</b></p>            <p>&nbsp;</p>            <p align="center"><b>例8-4 设置一个标签的图标/文本间隙</b></p>            <hr noshade size="1"><pre>import java.net.URL;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;public class Test extends JApplet implements SwingConstants {	public void init() {		Container contentPane = getContentPane();		JComboBox iconTextGap = new JComboBox();		JPanel controlPanel = new JPanel();		ImageIcon icon = new ImageIcon(this.getClass().getResource("ladybug.gif"));		final JLabel label = new JLabel("Lady Bug", icon, CENTER);		label.setFont(new Font("Times-Roman", Font.ITALIC, 20));		iconTextGap.addItem("4"); 		iconTextGap.addItem("10");		iconTextGap.addItem("15");		iconTextGap.addItem("20");		iconTextGap.addItem("25");		controlPanel.add(new JLabel("Icon/Text Gap:"));		controlPanel.add(iconTextGap);		contentPane.setLayout(new BorderLayout());		contentPane.add(controlPanel, "North");		contentPane.add(label, "Center");		iconTextGap.addItemListener(new ItemListener() {			public void itemStateChanged(ItemEvent event) {				JComboBox b = (JComboBox)event.getSource();				String    s = (String)b.getSelectedItem();				int       gap = Integer.parseInt(s);								label.setIconTextGap(gap);			}		});	}}</pre>            <hr noshade size="1">            <p> 8.2.4 许可状态</p>            <p>&nbsp;</p>            <p align="center"><b>例8-5 设置一个标签的许可状态</b></p>            <hr noshade size="1"><pre>import java.net.URL;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;public class Test extends JApplet implements SwingConstants {	public void init() {		Container contentPane = getContentPane();		JComboBox iconTextGap = new JComboBox();		JPanel controlPanel = new JPanel();		ImageIcon icon = new ImageIcon(this.getClass().getResource("ladybug.gif"));		final JLabel label = new JLabel("Lady Bug", icon, CENTER);		label.setFont(new Font("Times-Roman", Font.ITALIC, 20));		iconTextGap.addItem("4"); 		iconTextGap.addItem("10");		iconTextGap.addItem("15");		iconTextGap.addItem("20");		iconTextGap.addItem("25");		controlPanel.add(new JLabel("Icon/Text Gap:"));		controlPanel.add(iconTextGap);		contentPane.setLayout(new BorderLayout());		contentPane.add(controlPanel, "North");		contentPane.add(label, "Center");		iconTextGap.addItemListener(new ItemListener() {			public void itemStateChanged(ItemEvent event) {				JComboBox b = (JComboBox)event.getSource();				String    s = (String)b.getSelectedItem();				int       gap = Integer.parseInt(s);								label.setIconTextGap(gap);			}		});	}}</pre>            <hr noshade size="1">

⌨️ 快捷键说明

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