package jdepend.client.ui.circle; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.ParseException; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFormattedTextField; import javax.swing.JPanel; import javax.swing.text.MaskFormatter; import jdepend.framework.util.BundleUtil; import jdepend.client.ui.JDependCooper; import jdepend.client.ui.circle.domain.DataPacket; import jdepend.client.ui.circle.domain.IpMsgConstant; import jdepend.client.ui.circle.domain.SystemVar; import jdepend.client.ui.circle.util.NetUtil; public final class AddIPDialog extends JDialog { private JDependCooper frame; private JFormattedTextField field; public AddIPDialog(JDependCooper frame) throws ParseException { super(); this.frame = frame; setSize(250, 100); this.setLocationRelativeTo(null);// 窗口在屏幕中间显示 this.setLayout(new BorderLayout()); MaskFormatter ipmask = new MaskFormatter("###.###.###.###"); ipmask.setPlaceholderCharacter(' '); field = new JFormattedTextField(ipmask); field.setFont(new Font("Courier", Font.PLAIN, 18)); field.setColumns(16); this.add(BorderLayout.CENTER, field); JPanel buttonPanel = new JPanel(); buttonPanel.add(this.createOkButton()); buttonPanel.add(this.createCloseButton()); this.add(BorderLayout.SOUTH, buttonPanel); } private Component createOkButton() { JButton button = new JButton("增加"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { DataPacket dp = new DataPacket(IpMsgConstant.IPMSG_BR_ENTRY); dp.setAdditional(SystemVar.USER_NAME + '\0' + ""); dp.setIp(NetUtil.getLocalHostIp()); NetUtil.sendUdpPacket(dp, field.getText()); AddIPDialog.this.dispose(); } }); return button; } private Component createCloseButton() { JButton button = new JButton(BundleUtil.getString(BundleUtil.Command_Close)); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { AddIPDialog.this.dispose(); } }); return button; } }