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

📄 guidemo12.java

📁 java程序设计语言源代码
💻 JAVA
字号:
//Example 12 of Chapter 5

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class GUIDemo12
{
	JFrame f;
	JLabel picture;
	JPanel left, right;
	String name[] = { "数学", "化学", "计算机", "地质", "外语", "文史" };
	JRadioButton jrb[];
	JComboBox box;
	JList list;
	
	public void Demo()
	{
		JFrame f = new JFrame("校园建筑展示");
		picture = new JLabel( new ImageIcon( "数学"+".jpg") );
		picture.setVerticalTextPosition( JLabel.TOP );        //设置标签中文字的垂直位置
		picture.setHorizontalTextPosition( JLabel.CENTER );   //设置标签中文字的水平位置
		picture.setText( "校园建筑展示:"+"数学");            //定义此组件将要显示的单行文本
		picture.setPreferredSize( new Dimension(256,222) );
		
		left = new JPanel();
		left.setLayout( new GridLayout(6,1) );
		right = new JPanel();
		right.setLayout( new BorderLayout() );
		
		ButtonGroup group = new ButtonGroup();
		
		jrb = new JRadioButton[ name.length ];
		
		RadioListener myListener = new RadioListener();
		
		for (int i=0; i<name.length; i++)
		{
			jrb[i] = new JRadioButton( name[i] );
			int j = i+1;
			jrb[i].setActionCommand( name[i] );      //设置按纽的动作命令
			group.add( jrb[i] );                     //将按钮加入单选组
			jrb[i].addActionListener(myListener);    //为按钮设置监听器
			left.add( jrb[i] );                      //将按钮放入左侧的PANEL
		}
		
		jrb[0].setMnemonic(KeyEvent.VK_1);           //设置按钮的操作键为ALT+1
		jrb[1].setMnemonic(KeyEvent.VK_2);           //设置按钮的操作键为ALT+2
		jrb[2].setMnemonic(KeyEvent.VK_3);           //设置按钮的操作键为ALT+3
		jrb[3].setMnemonic(KeyEvent.VK_4);           //设置按钮的操作键为ALT+4
		jrb[4].setMnemonic(KeyEvent.VK_5);           //设置按钮的操作键为ALT+5
		jrb[5].setMnemonic(KeyEvent.VK_6);           //设置按钮的操作键为ALT+6
		
		jrb[0].setSelected(true);                    //设置第一个按钮为选定状态
		
		box = new JComboBox( name );
		box.setEditable( false );                      //设置组合框为不可编辑
		box.addActionListener( new ComboBoxListener());//为组合框设置监听器
		
		list = new JList( name );
		list.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );//设置列表为单选
		list.addListSelectionListener( new ListListener( ));//为列表设置监听器
		
		right.add( box, BorderLayout.NORTH );
		right.add( list, BorderLayout.CENTER );
		
		f.getContentPane().setLayout( new BorderLayout());
		f.getContentPane().add( left, BorderLayout.WEST );
		f.getContentPane().add( picture, BorderLayout.CENTER );
		f.getContentPane().add( right, BorderLayout.EAST );
		
		f.setSize(400,260);
		f.setVisible(true);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	public static void main(String[] args)
	{
		GUIDemo12 gui = new GUIDemo12();
		gui.Demo();
	}
	
	//用三个内部类实现监听器
	private class RadioListener implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			//获取选定项的索引值
			int k = -1;
			for(int i=0; i<name.length; i++)
			{
				if (name[i]==e.getActionCommand())k = i;
			}
			
			picture.setIcon(new ImageIcon(e.getActionCommand()+".jpg"));
			picture.setText( "校园建筑展示:"+e.getActionCommand() );
			box.setSelectedIndex( k );
			list.setSelectedIndex( k );
		}
	}
	
	private class ComboBoxListener implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			int k = -1;
			for(int i=0; i<name.length; i++)
			{
				if (name[i]==box.getSelectedItem())k = i;
			}
			
			picture.setIcon(new ImageIcon(box.getSelectedItem()+".jpg"));
			picture.setText( "校园建筑展示:"+box.getSelectedItem() );
			jrb[k].setSelected(true);
			list.setSelectedIndex( k );
		}
	}
	
	private class ListListener implements ListSelectionListener
	{
		public void valueChanged(ListSelectionEvent e)
		{
			int k = -1;
			for(int i=0; i<name.length; i++)
			{
				if (name[i]==list.getSelectedValue())k = i;
			}
			
			picture.setIcon(new ImageIcon(list.getSelectedValue()+".jpg"));
			picture.setText( "校园建筑展示:"+list.getSelectedValue() );
			jrb[k].setSelected(true);
			box.setSelectedIndex( k );
		}
	}
}

⌨️ 快捷键说明

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