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

📄 lunarphases.java

📁 java图形用户界面 6.1 HelloWorldSwing 6.2 按钮计数器 6.3 Swing按钮 6.4 温度转换器 6.5 HtmlDemo 6.6 投票器 6.7 TextS
💻 JAVA
字号:
import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.net.URL;public class LunarPhases implements ActionListener {    final static int NUM_IMAGES = 8;    final static int START_INDEX = 3;    ImageIcon[] images = new ImageIcon[NUM_IMAGES];    JPanel mainPanel, selectPanel, displayPanel;    JComboBox phaseChoices = null;    JLabel phaseIconLabel = null;    // 构造函数    public LunarPhases() {	// 创建下拉式选择框并且显示面板.	selectPanel = new JPanel();	displayPanel = new JPanel();	// 向子面板上添加各种widgets.	addWidgets();	// 创建包含两个子面板的主面板组件	mainPanel = new JPanel();	mainPanel.setLayout(new GridLayout(2,1,5,5));	mainPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));	// 向主面板中添加子面板	mainPanel.add(selectPanel);	mainPanel.add(displayPanel);    }    // 为选择和显示月相创建widgets    private void addWidgets() {	// 获得图片并且将它们存放在一个ImageIcon数组中.	for (int i = 0; i < NUM_IMAGES; i++) {	    String imageName = "images/image" + i + ".jpg";	    System.out.println("getting image: " + imageName);	    URL iconURL = ClassLoader.getSystemResource(imageName);	    ImageIcon icon = new ImageIcon(iconURL);	    images[i] = icon;	}	// 为显示月相创建一个标签组件并且为它设置边界.	phaseIconLabel = new JLabel();	phaseIconLabel.setHorizontalAlignment(JLabel.CENTER);	phaseIconLabel.setVerticalAlignment(JLabel.CENTER);	phaseIconLabel.setVerticalTextPosition(JLabel.CENTER);	phaseIconLabel.setHorizontalTextPosition(JLabel.CENTER);	phaseIconLabel.setBorder(BorderFactory.createCompoundBorder(			    BorderFactory.createLoweredBevelBorder(),			    BorderFactory.createEmptyBorder(5,5,5,5)));		phaseIconLabel.setBorder(BorderFactory.createCompoundBorder(			    BorderFactory.createEmptyBorder(0,0,10,0),			    phaseIconLabel.getBorder()));	// 创建一个下拉式选择框.	String[] phases = { "New", "Waxing Crescent", "First Quarter", 			    "Waxing Gibbous", "Full", "Waning Gibbous", 			    "Third Quarter", "Waning Crescent" };	phaseChoices = new JComboBox(phases);	phaseChoices.setSelectedIndex(START_INDEX);	// 显示第一幅图片.	phaseIconLabel.setIcon(images[START_INDEX]);	phaseIconLabel.setText("");    	// 为选择框添加边界	selectPanel.setBorder(BorderFactory.createCompoundBorder(		BorderFactory.createTitledBorder("Select Phase"), 		BorderFactory.createEmptyBorder(5,5,5,5)));    	// 为显示框添加边界    	displayPanel.setBorder(BorderFactory.createCompoundBorder(            BorderFactory.createTitledBorder("Display Phase"),             BorderFactory.createEmptyBorder(5,5,5,5)));	// 将选择框添加到select panel,将图像显示框添加到displayPanel.	selectPanel.add(phaseChoices);	displayPanel.add(phaseIconLabel);	// 监听来自选择框的事件	phaseChoices.addActionListener(this);    }    // 实现事件监听接口.    public void actionPerformed(ActionEvent event) {	if ("comboBoxChanged".equals(event.getActionCommand())) {	    // 更新显示图像	    phaseIconLabel.setIcon(images[phaseChoices.getSelectedIndex()]);	}    }    // main 方法    public static void main(String[] args) {	// 创建LunarPhases的一个新实例	LunarPhases phases = new LunarPhases();	// 创建frame和用来包含panel的容器.	JFrame lunarPhasesFrame = new JFrame("Lunar Phases");	// 设置显示风格	try {	    UIManager.setLookAndFeel(		UIManager.getCrossPlatformLookAndFeelClassName());	} catch(Exception e) {}		lunarPhasesFrame.setContentPane(phases.mainPanel);        // 关闭窗口时退出        lunarPhasesFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 	// 显示窗口	lunarPhasesFrame.pack();	lunarPhasesFrame.setVisible(true);    }}

⌨️ 快捷键说明

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