只是几固定的网址而已了,刚开始学JAVA想让自己桌面上有个自己写的东东了。呵呵。自己硬着头皮写了一个,请您看看看得清晰不?
如何才能让他更简便了。谢谢
[code="java"]package wangzhi;
import java.awt.*;
import java.io.IOException;
import java.net.URISyntaxException;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Main{
public static void main(String []args){
JFrame jf=new JFrame("苏戈斯网址");
JPanel jp=new JPanel(new GridLayout(3,3));
JButton jb1=new JButton("百度一下");
jb1.addActionListener(new ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
try {
bactionPerformed(e);
} catch (URISyntaxException e1) {
e1.printStackTrace();
}
}
});
JButton jb2=new JButton("京东商城");
jb2.addActionListener(new ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
try {
bactionPerformed(e);
} catch (URISyntaxException e1) {
e1.printStackTrace();
}
}
}); JButton jb3=new JButton("卓越商城");
jb3.addActionListener(new ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
try {
bactionPerformed(e);
} catch (URISyntaxException e1) {
e1.printStackTrace();
}
}
}); JButton jb4=new JButton("Ajava");
jb4.addActionListener(new ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
try {
bactionPerformed(e);
} catch (URISyntaxException e1) {
e1.printStackTrace();
}
}
});
JButton jb5=new JButton("Google");
jb5.addActionListener(new ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
try {
bactionPerformed(e);
} catch (URISyntaxException e1) {
e1.printStackTrace();
}
}
});
JButton jb6=new JButton("JavaEye");
jb6.addActionListener(new ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
try {
bactionPerformed(e);
} catch (URISyntaxException e1) {
e1.printStackTrace();
}
}
});
JButton jb7=new JButton("名鞋库");
jb7.addActionListener(new ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
try {
bactionPerformed(e);
} catch (URISyntaxException e1) {
e1.printStackTrace();
}
}
});
JButton jb8=new JButton("五一社区");
jb8.addActionListener(new ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
try {
bactionPerformed(e);
} catch (URISyntaxException e1) {
e1.printStackTrace();
}
}
});
JButton jb9=new JButton("果果博客");
jb9.addActionListener(new ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
try {
System.out.println("dda");
bactionPerformed(e);
} catch (URISyntaxException e1) {
e1.printStackTrace();
}
}
});
Toolkit kit=Toolkit.getDefaultToolkit();
Image image=kit.createImage("D:\source\image\cat.png");
jf.setIconImage(image);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jp.add(jb1);
jp.add(jb2);
jp.add(jb3);
jp.add(jb4);
jp.add(jb5);
jp.add(jb6);
jp.add(jb7);
jp.add(jb8);
jp.add(jb9);
jf.add(jp);
jf.setSize(300,300);
jf.setVisible(true);
}
public static void bactionPerformed(ActionEvent e) throws URISyntaxException{
java.net.URI uri = null;
try {
String a=e.getActionCommand();
String url=null;
if(a.equals("百度一下"))
url="http://baidu.com";
else if(a.equals("京东商城"))
url="http://360buy.com";
else if(a.equals("卓越商城"))
url="http://amazon.com.cn";
else if(a.equals("五一社区"))
url="http://51.com";
else if(a.equals("Ajava"))
url="http://ajava.org";
else if(a.equals("Google"))
url="http://google.com";
else if(a.equals("名鞋库"))
url="http://s.cn";
else if(a.equals("果果博客"))
url="http://hi.baidu.com/guoguo6688/blog/";
else if(a.equals("JavaEye"))
url="http://iteye.com";
uri = new java.net.URI(url);
java.awt.Desktop.getDesktop().browse(uri);
System.exit(0);//浏览网址并退出程序
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
[/code]
[img]http://dl.iteye.com/upload/attachment/452649/97a1e3bb-e240-3453-bb2f-47abacb8eafb.jpg[/img]
其实你想把他搞得好看点,是涉及到了重构的概念
我个人觉得有几个地方可以改进一下(当然,不会太全面)
1.你每个按钮注册的侦听器,都是一个匿名内部类,这个可以用同一个类取代,因为它的处理逻辑是相同的,通常的做法是建一个内部类,或者直接用主类Main
2.这个panel:JPanel jp=new JPanel(new GridLayout(3,3)); 应该提取出来,作为一个类,然后这些放置button,初始化界面等动作可以在它的init方法中实现(注意,最好别写在构造方法中)
3.虽然网址比较少,我推荐还是用个map来存储,而不是用equals逐个比较
即key是网址名,value是地址
用一个静态的代码块
static{}在类初始化时初始化好,注意Map最好用Collections提供的UnmodifiableCollection来让它不可修改,防止以后误用
其他还有一些乱起八糟的,像中文,异常处理机制,log等等,说起来废话就更多了……
多看点开源代码,就会有感觉了,初学多看看jdk的源码就差不多了
有想法,真好,
再给网址添加点logo,刚学不要简便,弄的越复杂越好,那样你就能接触更多的东西!