private void initComboBox(JComboBox combo) { if (combo.getUI() instanceof WindowsComboBoxUI) { combo.setUI(new RightPopupWindowsComboBoxUI()); } else { combo.setUI(new RightPopupBasicComboBoxUI()); } combo.addPopupMenuListener(new RightPopupMenuListener()); }
public void setFrame() { f = new JFrame("数据通讯参数设置"); // 获取屏幕分辨率的工具集 Toolkit tool = Toolkit.getDefaultToolkit(); // 利用工具集获取屏幕的分辨率 Dimension dim = tool.getScreenSize(); // 获取屏幕分辨率的高度 int height = (int) dim.getHeight(); // 获取屏幕分辨率的宽度 int width = (int) dim.getWidth(); // 设置位置 f.setLocation((width - 300) / 2, (height - 400) / 2); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.pack(); f.setVisible(true); f.setContentPane(this); f.setSize(320, 260); f.setResizable(false); lblIP = new JLabel("主机名"); txtIp = new JTextField(20); try { InetAddress addr = InetAddress.getLocalHost(); txtIp.setText(addr.getHostAddress().toString()); } catch (Exception ex) { } lblNo = new JLabel("端口号"); cmbNo = new JComboBox(); cmbNo.setEditable(true); cmbNo.addPopupMenuListener( new PopupMenuListener() { @Override public void popupMenuWillBecomeVisible(PopupMenuEvent e) { cmbNo.removeAllItems(); CommPortIdentifier portId = null; Enumeration portList; portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) { portId = (CommPortIdentifier) portList.nextElement(); cmbNo.addItem(portId.getName()); } } @Override public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { // To change body of implemented methods use File | Settings | File Templates. } @Override public void popupMenuCanceled(PopupMenuEvent e) { // To change body of implemented methods use File | Settings | File Templates. } }); lblName = new JLabel("工程名"); txtProjectName = new JComboBox(); txtProjectName.setEditable(true); txtProjectName.addPopupMenuListener( new PopupMenuListener() { @Override public void popupMenuWillBecomeVisible(PopupMenuEvent e) { txtProjectName.removeAllItems(); Mongo m1 = null; try { m1 = new Mongo(txtIp.getText().toString(), 27017); } catch (UnknownHostException ex) { ex.printStackTrace(); } for (String name : m1.getDatabaseNames()) { txtProjectName.addItem(name); } m1.close(); } @Override public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { // To change body of implemented methods use File | Settings | File Templates. } @Override public void popupMenuCanceled(PopupMenuEvent e) { // To change body of implemented methods use File | Settings | File Templates. } }); lblBote = new JLabel("波特率"); cmbBote = new JComboBox(); cmbBote.addItem(9600); cmbBote.addItem(19200); cmbBote.addItem(57600); cmbBote.addItem(115200); lblLength = new JLabel("数据长度"); cmbLength = new JComboBox(); cmbLength.addItem(8); cmbLength.addItem(7); lblParity = new JLabel("校验"); cmbParity = new JComboBox(); cmbParity.addItem("None"); cmbParity.addItem("Odd"); cmbParity.addItem("Even"); lblStopBit = new JLabel("停止位"); cmbStopBit = new JComboBox(); cmbStopBit.addItem(1); cmbStopBit.addItem(2); lblDelay = new JLabel("刷新"); txtDelay = new JTextField(20); btnOk = new JButton("确定"); btnOk.addActionListener( new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { paramIp = txtIp.getText().toString(); paramName = txtProjectName.getSelectedItem().toString(); paramNo = cmbNo.getSelectedItem().toString(); paramBote = Integer.parseInt(cmbBote.getSelectedItem().toString()); parmLength = Integer.parseInt(cmbLength.getSelectedItem().toString()); parmParity = cmbParity.getSelectedIndex(); parmStopBit = Integer.parseInt(cmbStopBit.getSelectedItem().toString()); parmDelay = Integer.parseInt(txtDelay.getText().toString()); if (!paramName.equals("") && !paramNo.equals("")) { receiveData( paramIp, paramName, paramNo, paramBote, parmLength, parmParity, parmStopBit, parmDelay); } else { } } }); btnCancel = new JButton("取消"); btnCancel.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); JPanel p1 = new JPanel(); p1.setLayout(new GridLayout(9, 2)); p1.add(lblIP); p1.add(txtIp); p1.add(lblNo); p1.add(cmbNo); p1.add(lblName); p1.add(txtProjectName); p1.add(lblBote); p1.add(cmbBote); p1.add(lblLength); p1.add(cmbLength); p1.add(lblParity); p1.add(cmbParity); p1.add(lblStopBit); p1.add(cmbStopBit); p1.add(lblDelay); p1.add(txtDelay); txtDelay.setText("500"); p1.add(btnOk); p1.add(btnCancel); p1.validate(); f.add(p1); f.validate(); }