现在的位置: 首页 > 综合 > 正文

IP控件

2013年10月21日 ⁄ 综合 ⁄ 共 4580字 ⁄ 字号 评论关闭
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);
        }

    }

}


抱歉!评论已关闭.