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

📄 warehouseclient.java

📁 精通Java网络编程代码全部
💻 JAVA
字号:
//WarehouseClient.java
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.rmi.*;
import java.rmi.server.*;
import java.util.*;
import javax.swing.*;

//这是整个程序的客户端
public class WarehouseClient
{
	public static void main(String[] args)
	{
		System.setProperty("java.security.policy", "client.policy");
		System.setSecurityManager(new RMISecurityManager());
		JFrame frame = new WarehouseClientFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.show();
	}
}
//这是界面去选择用户的年龄,兴趣爱好等
class WarehouseClientFrame extends JFrame
{
	public WarehouseClientFrame()
	{
		setTitle("WarehouseClient");
		setSize(WIDTH, HEIGHT);
		initUI();
		try
		{
			Properties props = new Properties();
			String fileName = "WarehouseClient.properties";
			FileInputStream in = new FileInputStream(fileName);
			props.load(in);
			String url = props.getProperty("warehouse.url");
			if (url == null)
			{
				url = "rmi://localhost/central_warehouse";
				centralWarehouse = (Warehouse)Naming.lookup(url);
			}
}	
			catch(Exception e)
			{
				System.out.println("Error: Can't connect to warehouse. " + e);
			}
		}
		private void initUI()
		{
			getContentPane().setLayout(new GridBagLayout());
			GridBagConstraints gbc = new GridBagConstraints();
			gbc.fill = GridBagConstraints.HORIZONTAL;
			gbc.weightx = 100;
			gbc.weighty = 0;
			add(new JLabel("Age:"), gbc, 0, 0, 1, 1);
			age = new JTextField(4);
			age.setText("20");
			add(age, gbc, 1, 0, 1, 1);
			male = new JCheckBox("Male", true);
			female = new JCheckBox("Female", true);
			add(male, gbc, 0, 1, 1, 1);
			add(female, gbc, 1, 1, 1, 1);
			add(new JLabel("Hobbies"), gbc, 0, 2, 1, 1);
			String[] choices = { "Gardening", "Beauty",
				"Computers", "Household", "Sports" };
			gbc.fill = GridBagConstraints.BOTH;
			hobbies = new JComboBox(choices);
			add(hobbies, gbc, 1, 2, 1, 1);
			gbc.fill = GridBagConstraints.NONE;
			JButton submitButton = new JButton("Submit");
			add(submitButton, gbc, 0, 3, 2, 1);
			submitButton.addActionListener(new
				ActionListener()
			{
				public void actionPerformed(ActionEvent evt)
				{
					callWarehouse();
				}
			});
			gbc.weighty = 100;
			gbc.fill = GridBagConstraints.BOTH;
			result = new JTextArea(4, 40);
			result.setEditable(false);
			add(result, gbc, 0, 4, 2, 1);
		}
		//在frame中添加组件
		private void add(Component c, GridBagConstraints gbc,
			int x, int y, int w, int h)
		{  
			gbc.gridx = x;
			gbc.gridy = y;
			gbc.gridwidth = w;
			gbc.gridheight = h;
			getContentPane().add(c, gbc);
		}
		//远程调用去获得匹配的商品
		private void callWarehouse()
		{
			try
			{
				Customer c = new Customer(Integer.parseInt(age.getText()),
					(male.isSelected() ? Product.MALE : 0)
					+ (female.isSelected() ? Product.FEMALE : 0),
					new String[] { (String)hobbies.getSelectedItem() });
				ArrayList recommendations = centralWarehouse.find(c);
				result.setText(c + "\n");
				for (int i = 0; i < recommendations.size(); i++)
				{
					Product p = (Product)recommendations.get(i);
					String t = p.getDescription() + "\n";
					result.append(t);
				}
			}
			catch(Exception e)
			{
				result.setText("Exception: " + e);
			}
		}
		private static final int WIDTH = 300;
		private static final int HEIGHT = 300;
		private Warehouse centralWarehouse;
		private JTextField age;
		private JCheckBox male;
		private JCheckBox female;
		private JComboBox hobbies;
		private JTextArea result;
}

⌨️ 快捷键说明

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