请指点一下有关 IP解析的代码

zh89220 2011-05-28 03:31:59
JFrame newf = new JFrame();
newf.setSize(200,100);
newf.setVisible(true);
JTextArea text1 = new JTextArea(1,10);
JTextArea text2 = new JTextArea(1,10);
JButton newb = new JButton("确定");
newf.add(text1,BorderLayout.NORTH);
newf.add(newb,BorderLayout.CENTER);
newf.add(text2,BorderLayout.SOUTH);

InetAddress address1 = null;
InetAddress address2 = null;
try
{
address1 = InetAddress.getByName(text1.getText().toString());
System.out.println(address1.getHostName());//输出主机名
address2 = InetAddress.getByName(text2.getText().toString());
System.out.println(address2);//输出指定机器的IP地址

}
catch (UnknownHostException b)
{
System.err.println(b);//显示错误信息
}



谁能帮我看下这段代码。功能是:获取输入的主机名或IP地址, 输出对应IP地址或主机名。
...全文
60 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
茫茫大海 2011-05-28
  • 打赏
  • 举报
回复

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.InetAddress;
import java.net.UnknownHostException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class Main extends JFrame implements ActionListener {

private JTextArea name;
private JTextArea ip;
private JButton button;
private JTextArea result;

public Main() {
name = new JTextArea(1, 10);
ip = new JTextArea(1, 10);
button = new JButton("确定");
button.addActionListener(this);
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
panel.add(new JLabel("主机名:"));
panel.add(name);
panel.add(new JLabel("IP地址:"));
panel.add(ip);
panel.add(button);
this.add(panel, BorderLayout.NORTH);

result = new JTextArea(15, 20);
result.setEditable(false);
JScrollPane jsp = new JScrollPane(result);//给显示结果的JTextArea加上滚动条
this.add(jsp);

this.setTitle("地址解析");
this.setSize(600, 400);
this.setVisible(true);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

/**
* 处理确定按钮单击的事件
*/
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("确定")) {
if (name.getText().trim().equals("")) {
JOptionPane.showMessageDialog(this, "主机名不能为空!");
return;
}
if (ip.getText().trim().equals("")) {
JOptionPane.showMessageDialog(this, "IP地址不能为空!");
return;
} else if(!ip.getText().trim().matches("((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)\\.){3}(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|[1-9])")) {//验证IP地址格式是否正确
JOptionPane.showMessageDialog(this, "IP地址格式错误,请检查后重新输入!");
return;
}

InetAddress address1 = null;
InetAddress address2 = null;
try {
address1 = InetAddress.getByName(name.getText().trim());
String message = "主机名:" + name.getText() + " 对应的IP地址为:" + address1.getHostAddress();
if(!result.getText().equals(""))
message = result.getText() + "\n" + message;
result.setText(message);
address2 = InetAddress.getByName(ip.getText().trim());
message = "IP地址:" + ip.getText() + " 对应的主机名为:" + address2.getHostName();
result.setText(result.getText() + "\n" + message);
} catch (UnknownHostException b) {
JOptionPane.showMessageDialog(this, "操作过程中出现了错误,请检查输入是否正确!");
return;
}

}
}

public static void main(String[] args) {
new Main();
}
}

没看明白楼主的代码,根据楼主的大概意思写了上面的程序,楼主可以看看!
诚朴勇毅 2011-05-28
  • 打赏
  • 举报
回复
我觉得应该把newf.setVisible(true);放在JTextArea 后面。
查JDK文档吧。
茫茫大海 2011-05-28
  • 打赏
  • 举报
回复
看什么,你发帖的目的是什么呢?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧