emaillisting.java

来自「java编程开发技巧与实例的编译测试通过的所有例程」· Java 代码 · 共 113 行

JAVA
113
字号
import java.awt.event.*;
import javax.swing.event.*;
//import javax.swing.DefaultListModel;
//import javax.swing.JButton;
//import javax.swing.JList;
//import javax.swing.JPanel;
//import javax.swing.JTextField;
import javax.swing.*;
//import java.awt.*;
import java.awt.FlowLayout;
import java.awt.GridLayout;


public class EmailListing extends JFrame implements ActionListener, ListSelectionListener
{
	private DefaultListModel	data	=	new DefaultListModel();
	private JList				list	=	new JList(data);
	private JTextField			name	=	new JTextField();
	private JTextField			email	=	new JTextField();
	private JButton				add		=	new JButton("Add");
	private JButton				del		=	new JButton("Delete");
	
	private class WindowCloser extends WindowAdapter
	{
		public void windowClosing(WindowEvent we)
		{	System.exit(0);	}
	}
	public EmailListing()
	{
		super("Email List");
		JPanel buttons	=	new JPanel(new FlowLayout());
		buttons.add(add);
		buttons.add(del);
		JPanel input	=	new JPanel(new GridLayout(2, 2));
		input.add(new JLabel("Name: "));
		input.add(name);
		input.add(new JLabel("Email: "));
		input.add(email);
		JScrollPane scrollList	=	new JScrollPane(list);
		getContentPane().add("North",	new JPanelBox(input, "Address"));
		getContentPane().add("Center",	new JPanelBox(scrollList, "List"));
		getContentPane().add("South",	buttons);
		list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		list.addListSelectionListener(this);
		add.addActionListener(this);
		del.addActionListener(this);
		email.addActionListener(this);
		addWindowListener(new WindowCloser());
		
		validate();
		pack();
		setLocationRelativeTo(null);
		setVisible(true);
	}
	public void handleDelete()
	{
		validate();
		int index = -1;
		index = list.getSelectedIndex();
		if (index >= 0)
			data.remove(list.getSelectedIndex());
		System.err.println("delete failed !");
	}
	public void handleAdd()
	{
		if (!name.equals(""))
		{
			data.addElement(new Address(name.getText(), email.getText()));
			name.setText("");
			email.setText("");
			name.requestFocus();
		}
	}
	public void actionPerformed(ActionEvent ae)
	{
		if (ae.getSource() == del)
			handleDelete();
		else if ((ae.getSource() == add) || ae.getSource() == email)
			handleAdd();
	}
	public void valueChanged(ListSelectionEvent lse)
	{
		Address address	=	(Address)data.get(list.getSelectedIndex());
		name.setText(address.name);
		email.setText(address.email);
	}
	public static void styleCtrl(String style)
	{
		try
		{
			String lf_wind	=	"com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
			String lf_unix	=	"com.sun.java.swing.plaf.motif.MotifLookAndFeel";
			String lf_java	=	"javax.swing.plaf.metal.MetalLookAndFeel";
			if (style.equals("java"))
				UIManager.setLookAndFeel(lf_java);
			else if (style.equals("unix"))
				UIManager.setLookAndFeel(lf_unix);
			else if (style.equals("windows"))
				UIManager.setLookAndFeel(lf_wind);
		}
		catch	(Exception e)
		{
			System.err.println("Exception: " + e);
		}
	}
	public static void main(String args[])
	{
		styleCtrl("unix");
		EmailListing el	=	new EmailListing();
		
	}
}

⌨️ 快捷键说明

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