序: 自己做的一个域名及本地IP查询的java小程序,目前只完成了基本功能,后续工作待以后逐步完善
代码如下:
import java.net.*;
import javax.swing.*;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JLabel;
import java.awt.*;
public class Iptest extends JFrame {
private JPanel jContentPane = null;
private JButton jButton = null;
private JButton jButton1 = null;
private JTextField jTextField = null;
private JTextField jTextField1 = null;
private JLabel jLabel = null;
private JLabel jLabel1 = null;
private String text, text1, text2;
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField() {
if (jTextField == null) {
jTextField = new JTextField();
jTextField.setBounds(new java.awt.Rectangle(31, 42, 137, 22));
jTextField.setText("");
}
return jTextField;
}
/**
* This method initializes jTextField1
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField1() {
if (jTextField1 == null) {
jTextField1 = new JTextField();
jTextField1.setBounds(new java.awt.Rectangle(31, 126, 110, 20));
jTextField1.setEditable(false);
jTextField1.setBackground(java.awt.Color.white);
jTextField1.setText("");
}
return jTextField1;
}
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new java.awt.Rectangle(201, 124, 61, 25));
jButton.setText("转换");
jButton.setVisible(true);
jButton.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
text = jTextField.getText();
try {
{
InetAddress ia = InetAddress.getByName(text + ".");
text1 = ia.getHostAddress();
}
} catch (UnknownHostException e1) {
}
jTextField1.setText(text1);
}
});
}
return jButton;
}
/**
* This method initializes jButton1
*
* @return javax.swing.JButton
*/
private JButton getJButton1() {
if (jButton1 == null) {
jButton1 = new JButton();
jButton1.setBounds(new java.awt.Rectangle(189, 31, 71, 33));
jButton1.setText("本地IP");
jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
try {
InetAddress ia = InetAddress.getLocalHost();
text2 = ia.getHostAddress();
} catch (UnknownHostException e1) {
}
jTextField1.setText(text2);
}
});
}
return jButton1;
}
/**
* window set to screencenter
*/
public void setToScreenCenter(Window window) {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension windowSize = window.getSize();
if (windowSize.height > screenSize.height)
windowSize.height = screenSize.height;
if (windowSize.width > screenSize.width)
windowSize.width = screenSize.width;
window.setLocation((screenSize.width - windowSize.width) / 2,
(screenSize.height - windowSize.height) / 2);
}
/**
* This is the default constructor
*/
public Iptest() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(300, 200);
this.setResizable(false);
this.setContentPane(getJContentPane());
this.setTitle("域名及本地IP查询");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //这里设置点 x 关闭
setToScreenCenter(this); //屏幕居中设置
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jLabel1 = new JLabel();
jLabel1.setBounds(new java.awt.Rectangle(31, 97, 56, 21));
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.LEADING);
jLabel1.setText("输出 IP");
jLabel = new JLabel();
jLabel.setBounds(new java.awt.Rectangle(31, 17, 137, 19));
jLabel.setText("输入地址: (www...)");
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJTextField(), null);
jContentPane.add(getJTextField1(), null);
jContentPane.add(getJButton(), null);
jContentPane.add(getJButton1(), null);
jContentPane.add(jLabel, null);
jContentPane.add(jLabel1, null);
}
// 视窗皮肤设置
try {
UIManager
.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");
} catch (Exception e) {
System.err
.println("Couldn't find class for specified look and feel:");
}
return jContentPane;
}
/**
* @param args
*/
public static void main(String[] args) {
Iptest mmm = new Iptest();
mmm.setVisible(true);
}
}
两种显示效果比较如下:
补充说明:
04/27/2006 半夜完成没时间了,以后再续吧........
04/28/2006 在输入为空值时,发现inetaddress 会转换成127.0.0.1的IP地址,解决办法是string+"." , 也就是说输入像 www.sohu.com. 这样的域名会和 www.sohu.com 一样,被转换为同样的IP 地址.
04/29/2006 今天学习了一下lookandfeel的用法,用了第三方liquid的皮肤,界面看上去还不错,窗口放置于屏幕的中间,不过eclipse不能直观反应出来,耽误了不少时间 :(
04/30/2006 偶然机会打开任务管理器发现N多的javaw,才恍然明白SUN程序例子的那行关闭窗口的语句并非无用,开始以为只是关闭窗口不设置也能关闭,没考虑进程,算长教训了.
今天还试了一下Excelsior Jet 可以把java转成exe,摸索了一天才发现还需要所谓的JETruntime,一个几十K的小程序打包完居然要十几兆,倒塌!这玩意可能是给大型软件使用的
补丁更新:
04/27/2006 Ver 0.10 作品第一次完成.
04/29/2006 Ver 0.12 窗口置于屏幕中间便于浏览,界面进行了美化.
04/30/2006 Ver 0.13 修正了窗口关闭进程没有关闭的bug.(汗...)