新人求助一个给MenuItem添加监听器的问题!!!!

Xeon-Shao 2012-05-01 08:28:21
我的代码如下(删去无关的部分了,有几个事件处理程序没有写,但是写了的那几个不能执行),红色部分为问题所讨论的内容~~~~~,最后打开程序,点相应的菜单,木有反应,这是怎么回事???希望牛人解答一下~~~

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();
}

}
...全文
273 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzc_hacker 2012-05-02
  • 打赏
  • 举报
回复
使用 ActionListener 即可/

62,635

社区成员

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

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