首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

新人一个给MenuItem添加监听器的有关问题!

2012-09-02 
新人求助一个给MenuItem添加监听器的问题!!!!我的代码如下(删去无关的部分了,有几个事件处理程序没有写,但

新人求助一个给MenuItem添加监听器的问题!!!!
我的代码如下(删去无关的部分了,有几个事件处理程序没有写,但是写了的那几个不能执行),红色部分为问题所讨论的内容~~~~~,最后打开程序,点相应的菜单,木有反应,这是怎么回事???希望牛人解答一下~~~

package gui;
import gui.HistoryList;
import gui.PopupDialog;

import java.awt.event.ActionEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.ActionListener;
public class MiniIE extends JFrame implements HyperlinkListener {
private JPanel mianban;
private JTextField kuang;
private JToolBar bar;
private JLabel jisu;
private JButton zhuandao;
private JButton houtui;
private JButton qianjin;
private JButton shuaxin;
private JButton lingcunwei;
private JMenuBar menubar;
private JTabbedPane tabbedPane;
private String sURL;
private HistoryList hl=new HistoryList(); 
private JEditorPane je=new JEditorPane();
private JScrollPane jsp;
private int tabCounter = 1;
private ImageIcon ii = new ImageIcon("close.jpg");
private Dimension iisize = new Dimension(ii.getIconWidth(),ii.getIconHeight());
private MiniIE chuangkou;
private ClientNetworkTools cnt = new ClientNetworkTools();
private ClientFileTools cft = new ClientFileTools();
private JLabel lblStatus;
public MiniIE(String s){
super(s);
}
public MiniIE(){
super();
final MiniIE chuangkou=new MiniIE("我爱(5i)浏览器");
Dimension d=Toolkit.getDefaultToolkit().getScreenSize();
chuangkou.setBounds(d.width/2-500,0,1000,700); 

mianban=new JPanel();
mianban.setLayout(new BorderLayout());
mianban.setBorder(new EmptyBorder(5,5,5,5));

menubar=new JMenuBar();
JMenu menu1=new JMenu("文件");
JMenu menu2=new JMenu("工具");
JMenu menu3=new JMenu("帮助");
JMenuItem menuitem2=new JMenuItem("新建标签页");
JMenuItem menuitem3=new JMenuItem("保存网页");
JMenuItem menuitem4=new JMenuItem("退出");
JMenuItem menuitem5=new JMenuItem("历史");
JMenuItem menuitem6=new JMenuItem("清空历史记录");
JMenuItem menuitem7=new JMenuItem("帮助");
menu1.add(menuitem2);
menu1.add(menuitem3);
menu1.add(menuitem4);
menu2.add(menuitem5);
menu2.add(menuitem6);
menu3.add(menuitem7);
menubar.add(menu1);
menubar.add(menu2);
menubar.add(menu3);
chuangkou.add(menubar);
chuangkou.setJMenuBar(menubar);

menuitem2.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
chuangkou.addDefaultTab();
}
});
menuitem3.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){

}
});
menuitem4.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
System.exit(0);
}
});
menuitem5.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){

}
});
menuitem6.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){

}
});
menuitem7.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
new PopupDialog("帮助","你现在看到的是我爱(5i)浏览器1.0正式版!"+"\n"+"1.点击HOME进入主页。"+
"\n"+"2.点击相应按钮执行相应功能。"+"3.网址前加http://可以浏览因特网资源,不加则浏览本地资源。");
}
});kuang.addActionListener(new kuangActionlistener());
zhuandao.addActionListener(new zhuandaoActionlistener());
houtui.addActionListener(new houtuiActionlistener());
qianjin.addActionListener(new qianjinActionlistener());
shuaxin.addActionListener(new shuaxinActionlistener());
lingcunwei.addActionListener(new lingcunweiActionlistener());
je.addHyperlinkListener(this);

bar.add(houtui);
bar.add(qianjin);


bar.add(shuaxin);
bar.add(lingcunwei);

JPanel mianban2=new JPanel();
mianban2.setLayout(new BorderLayout());
JPanel mianban3=new JPanel();
mianban3.setLayout(new FlowLayout());
mianban3.add(biaozhi);
mianban3.add(wangzhi);
mianban3.add(kuang);
mianban3.add(jisu);
mianban3.add(zhuandao);
  mianban2.add(bar,BorderLayout.SOUTH);
  mianban2.add(mianban3,BorderLayout.CENTER);
mianban.add(mianban2,BorderLayout.NORTH);

  tabbedPane = new JTabbedPane(JTabbedPane.TOP);
this.addDefaultTab();
  mianban.add(tabbedPane, BorderLayout.CENTER);

  lblStatus = new JLabel("MiniIE");
mianban.add(lblStatus, BorderLayout.SOUTH);
cnt.setStatus(lblStatus);
cnt.setBr(this);

Toolkit tk=Toolkit.getDefaultToolkit() ;
Image image=tk.createImage("我爱浏览器.png");
chuangkou.setIconImage(image); 

chuangkou.getContentPane().add(mianban);
chuangkou.setVisible(true);

}
public void addTab(String webFileAddress)
{
//add a empty panel
JPanel panel = new JPanel();
panel.setBackground(Color.WHITE);
panel.setLayout(null);
//displayHTML
Translater newHTML = new Translater();
newHTML.setDisplayPanel(panel);
newHTML.setContent(newHTML.ReadFileToStirng(webFileAddress));
newHTML.displayHTML(newHTML.getContent());
tabbedPane.addTab(newHTML.getHtmlName(), panel);
//JPanel panel1 = new JPanel();
//tabbedPane.addTab("test", panel1);
tabbedPane.setSelectedIndex(tabbedPane.getTabCount()-1);
//Close button
JButton tabCloseButton = new JButton(ii);

ActionListener al;
al = new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
JButton btn = (JButton) ae.getSource();
String sl = btn.getActionCommand();
for(int i = 1 ; i<tabbedPane.getTabCount();i++)
{
JPanel pnl = (JPanel) tabbedPane.getComponentAt(i);
btn = (JButton) pnl.getComponent(0);
String s2 = btn.getActionCommand();
if(sl.equals(s2))
{
tabbedPane.removeTabAt(i);
break;
}
}
}
};
tabCloseButton.addActionListener(al);
tabCounter++;
}
//end add tab
public void hyperlinkUpdate(HyperlinkEvent e){
if(e.getEventType()==HyperlinkEvent.EventType.ACTIVATED)
{
try{
URL url=e.getURL();
je.setPage(url);
kuang.setText(e.getURL().toString());
}catch(Exception e1)
{
JOptionPane.showMessageDialog( chuangkou, "连接错误");
}
}
}
//***************************后退按钮*******************************
  public void goBack() {
  try {
  sURL = hl.getLast();//得到 previous URL
// ww.setCurrentURL(sURL);//显示 it
// setToolBarURL(sURL); //更改 toolbar text field
  }

  catch(Exception e) {
  new PopupDialog("错误!", e.getMessage());
  }
  }

//***************************前进按钮*******************************
  public void goForward() {
  //结构同后退按钮
  try {
  sURL = hl.getNext();
  }
  catch(Exception e) {
  new PopupDialog("错误", e.getMessage());
  }
  }

  // 刷新按钮
  public void refreshURL() {
  //结构同后退按钮
  try {
  }
  catch(Exception e) {
  new PopupDialog("错误!", e.getMessage());
  }


  }


  public String getCurrentURL() {//记录当前的URL
  return sURL;
  }
   
  public void setCurrentURL(String current) {//设置当前URL

  if (!(current.substring(0, 7)).equals("http://")) {
  if(!(current.substring(0, 3)).equals("www"))
  current = "www."+current;
  current = "http://"+current;//确保URL的格式正确
  }

  sURL = current;//使得URL为current值

  try {
// ww.setCurrentURL(sURL);//转动该网页
  hl.add(sURL); //加入历史记录
// setToolBarURL(sURL);//更改toolbar text field
  }
  catch(Exception e) {
  new PopupDialog("错误!", e.getMessage());
  }
  }

class zhuandaoActionlistener implements ActionListener{
public void actionPerformed(ActionEvent e){
String website=kuang.getText().trim();
String prewebsite=website.substring(0, 7);
if(prewebsite.equals("http://")){
try{
je.setPage(website);
je.setEditable(false);
jsp=new JScrollPane(je);
jsp.setLayout(new ScrollPaneLayout());
mianban.add(jsp,BorderLayout.CENTER);
}
catch(IOException E){}
}
else{







}
}
}
class qianjinActionlistener implements ActionListener{
public void actionPerformed(ActionEvent e){

}
}
class shuaxinActionlistener implements ActionListener{
public void actionPerformed(ActionEvent e){

}
}
class houtuiActionlistener implements ActionListener{
public void actionPerformed(ActionEvent e){

}
}
class lingcunweiActionlistener implements ActionListener{
public void actionPerformed(ActionEvent e){

}
}
class kuangActionlistener implements ActionListener{
public void actionPerformed(ActionEvent e){
if(e.getSource()==kuang){
String website=kuang.getText().trim();
String prewebsite=website.substring(0, 7);
if(prewebsite.equals("http://")){
try{
je.setPage(website);
je.setEditable(false);
jsp=new JScrollPane(je);
jsp.setLayout(new ScrollPaneLayout());
mianban.add(jsp,BorderLayout.CENTER);
}
catch(IOException E){}
}
else{




}
}
}
}

public static void main(String[] args) {
// TODO Auto-generated method stub
  new MiniIE();
}

}

[解决办法]
使用 ActionListener 即可/

热点排行