import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.StringTokenizer;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class IpTextPanel extends JPanel{
/**
* init a IpTextPanel instance
* @param frame parent JFrame
*/
public IpTextPanel(JFrame frame){
super();
this.frame = frame;
seg1 = new IpTextField(3,frame,1,255);
seg2 = new IpTextField(3,frame,0,255);
seg3 = new IpTextField(3,frame,0,255);
seg4 = new IpTextField(3,frame,1,255);
setLayout(new FlowLayout(FlowLayout.CENTER,3,3));
add(seg1);
add(new JLabel("."));
add(seg2);
add(new JLabel("."));
add(seg3);
add(new JLabel("."));
add(seg4);
}
/**
* set an ip address,it won't check the ip is valid or not
* @param ip address type
*/
public void setText(String ip){
StringTokenizer st = new StringTokenizer(ip,".");
seg1.setText(st.nextToken());
seg2.setText(st.nextToken());
seg3.setText(st.nextToken());
seg4.setText(st.nextToken());
}
/**
* clear the ip address
*/
public void clear(){
seg1.setText("");
seg2.setText("");
seg3.setText("");
seg4.setText("");
}
/**
* get the ip address content
* @return ipaddress String value
*/
public String getText(){
if(seg1.getText().equals("")||seg2.getText().equals("")||seg3.getText().equals("")||seg4.getText().equals("")){
JOptionPane.showMessageDialog(frame,"请输入完整","WARNING",JOptionPane.WARNING_MESSAGE);
return null;
}else{
return Integer.parseInt(seg1.getText().trim())+"."+Integer.parseInt(seg2.getText().trim())+"."+Integer.parseInt(seg3.getText().trim())+"."+Integer.parseInt(seg4.getText().trim());
}
}
private JFrame frame = null;
private IpTextField seg1 = null;
private IpTextField seg2 = null;
private IpTextField seg3 = null;
private IpTextField seg4 = null;
public static void main(String[] args){
JFrame frame = new JFrame();
frame.getContentPane().setLayout(new BorderLayout());
final IpTextPanel pane = new IpTextPanel(frame);
frame.getContentPane().add(pane,BorderLayout.CENTER);
JPanel buttonPane = new JPanel();
JButton getText = new JButton("getText");
JButton setText = new JButton("setText");
buttonPane.setLayout(new FlowLayout(FlowLayout.CENTER,3,3));
buttonPane.add(getText);
buttonPane.add(setText);
frame.getContentPane().add(buttonPane,BorderLayout.SOUTH);
frame.setLocation(400,300);
frame.setSize(400,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
getText.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.out.println(pane.getText());
}
});
setText.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
pane.setText("15.0.33.499");
//pane.clear();
}
});
}
}
//************************************************************************************************
import java.awt.Component;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
public class IpTextField extends JTextField {
private int min = 0;// min value
private int max = 255;// max value
IpSegDocument document = null;
public IpTextField(int columns, JFrame frame, int min, int max) {
super(columns);
this.min = min;
this.max = max;
setDocument(document = new IpSegDocument(frame, columns, min, max));
}
public int getMax() {
return max;
}
public void setMax(int max) {
this.max = max;
if (document != null) {
document.setMax(max);
}
}
public int getMin() {
return min;
}
public void setMin(int min) {
this.min = min;
if (document != null) {
document.setMin(min);
}
}
}
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.StringTokenizer;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class IpTextPanel extends JPanel{
/**
* init a IpTextPanel instance
* @param frame parent JFrame
*/
public IpTextPanel(JFrame frame){
super();
this.frame = frame;
seg1 = new IpTextField(3,frame,1,255);
seg2 = new IpTextField(3,frame,0,255);
seg3 = new IpTextField(3,frame,0,255);
seg4 = new IpTextField(3,frame,1,255);
setLayout(new FlowLayout(FlowLayout.CENTER,3,3));
add(seg1);
add(new JLabel("."));
add(seg2);
add(new JLabel("."));
add(seg3);
add(new JLabel("."));
add(seg4);
}
/**
* set an ip address,it won't check the ip is valid or not
* @param ip address type
*/
public void setText(String ip){
StringTokenizer st = new StringTokenizer(ip,".");
seg1.setText(st.nextToken());
seg2.setText(st.nextToken());
seg3.setText(st.nextToken());
seg4.setText(st.nextToken());
}
/**
* clear the ip address
*/
public void clear(){
seg1.setText("");
seg2.setText("");
seg3.setText("");
seg4.setText("");
}
/**
* get the ip address content
* @return ipaddress String value
*/
public String getText(){
if(seg1.getText().equals("")||seg2.getText().equals("")||seg3.getText().equals("")||seg4.getText().equals("")){
JOptionPane.showMessageDialog(frame,"请输入完整","WARNING",JOptionPane.WARNING_MESSAGE);
return null;
}else{
return Integer.parseInt(seg1.getText().trim())+"."+Integer.parseInt(seg2.getText().trim())+"."+Integer.parseInt(seg3.getText().trim())+"."+Integer.parseInt(seg4.getText().trim());
}
}
private JFrame frame = null;
private IpTextField seg1 = null;
private IpTextField seg2 = null;
private IpTextField seg3 = null;
private IpTextField seg4 = null;
public static void main(String[] args){
JFrame frame = new JFrame();
frame.getContentPane().setLayout(new BorderLayout());
final IpTextPanel pane = new IpTextPanel(frame);
frame.getContentPane().add(pane,BorderLayout.CENTER);
JPanel buttonPane = new JPanel();
JButton getText = new JButton("getText");
JButton setText = new JButton("setText");
buttonPane.setLayout(new FlowLayout(FlowLayout.CENTER,3,3));
buttonPane.add(getText);
buttonPane.add(setText);
frame.getContentPane().add(buttonPane,BorderLayout.SOUTH);
frame.setLocation(400,300);
frame.setSize(400,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
getText.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.out.println(pane.getText());
}
});
setText.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
pane.setText("15.0.33.499");
//pane.clear();
}
});
}
}
//************************************************************************************************
import java.awt.Component;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
public class IpTextField extends JTextField {
private int min = 0;// min value
private int max = 255;// max value
IpSegDocument document = null;
public IpTextField(int columns, JFrame frame, int min, int max) {
super(columns);
this.min = min;
this.max = max;
setDocument(document = new IpSegDocument(frame, columns, min, max));
}
public int getMax() {
return max;
}
public void setMax(int max) {
this.max = max;
if (document != null) {
document.setMax(max);
}
}
public int getMin() {
return min;
}
public void setMin(int min) {
this.min = min;
if (document != null) {
document.setMin(min);
}
}
}