
用java语言编写的弹出式菜单程序,帮我检查下哪里错了。
importjava.awt.*;importjava.awt.event.*;publicclassW8extendsFrameimplementsActionList...
import java.awt.*;
import java.awt.event.*;
public class W8 extends Frame implements ActionListener, MouseListener {
TextArea msg=new TextArea();
PopupMenu pm=new PopupMenu();
MenuItem item1=new MenuItem("复制");
MenuItem item2=new MenuItem("剪切");
MenuItem item3=new MenuItem("粘贴");
item1.addActionListener(this);
item2.addActionListener(this);
item3.addActionListener(this);
msg.addMouseListener(this); // 注册文本区的鼠标事件监听器
show();
}
public void actionPerformed(ActionEvent e) {
msg.append("你选择了"+e.getActionCommand()+"\n");
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) // 判断是否按下鼠标右键
pm.show(this, e.getX(), e.getY()); // 显示弹出式菜单
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public static void main(String arg[]) {
new W8();
}
}
这个可以编译成功,不过可以稍微解释下吗?
为什么点退出没有响应? 展开
import java.awt.event.*;
public class W8 extends Frame implements ActionListener, MouseListener {
TextArea msg=new TextArea();
PopupMenu pm=new PopupMenu();
MenuItem item1=new MenuItem("复制");
MenuItem item2=new MenuItem("剪切");
MenuItem item3=new MenuItem("粘贴");
item1.addActionListener(this);
item2.addActionListener(this);
item3.addActionListener(this);
msg.addMouseListener(this); // 注册文本区的鼠标事件监听器
show();
}
public void actionPerformed(ActionEvent e) {
msg.append("你选择了"+e.getActionCommand()+"\n");
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) // 判断是否按下鼠标右键
pm.show(this, e.getX(), e.getY()); // 显示弹出式菜单
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public static void main(String arg[]) {
new W8();
}
}
这个可以编译成功,不过可以稍微解释下吗?
为什么点退出没有响应? 展开
展开全部
改成下面这样就满足你的要求了
你的程序没有构造函数
用构造函数将 组件初始化
然后 组件要添加进去
这样才能显示的
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
public class W8 extends JFrame implements ActionListener, MouseListener
{
TextArea msg;
PopupMenu pm;
W8()
{
msg=new TextArea();
pm=new PopupMenu();
MenuItem item1=new MenuItem("复制");
MenuItem item2=new MenuItem("剪切");
MenuItem item3=new MenuItem("粘贴");
this.setSize(300,400);
pm.add(item1);
pm.add(item2);
pm.add(item3);
add(msg);
add(pm);
item1.addActionListener(this);
item2.addActionListener(this);
item3.addActionListener(this);
msg.addMouseListener(this); // 注册文本区的鼠标事件监听器
show();
}
public void actionPerformed(ActionEvent e) {
msg.append("你选择了"+e.getActionCommand()+"\n");
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) // 判断是否按下鼠标右键
pm.show(this, e.getX(), e.getY()); // 显示弹出式菜单
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public static void main(String arg[]) {
new W8();
}
}
你的程序没有构造函数
用构造函数将 组件初始化
然后 组件要添加进去
这样才能显示的
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
public class W8 extends JFrame implements ActionListener, MouseListener
{
TextArea msg;
PopupMenu pm;
W8()
{
msg=new TextArea();
pm=new PopupMenu();
MenuItem item1=new MenuItem("复制");
MenuItem item2=new MenuItem("剪切");
MenuItem item3=new MenuItem("粘贴");
this.setSize(300,400);
pm.add(item1);
pm.add(item2);
pm.add(item3);
add(msg);
add(pm);
item1.addActionListener(this);
item2.addActionListener(this);
item3.addActionListener(this);
msg.addMouseListener(this); // 注册文本区的鼠标事件监听器
show();
}
public void actionPerformed(ActionEvent e) {
msg.append("你选择了"+e.getActionCommand()+"\n");
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) // 判断是否按下鼠标右键
pm.show(this, e.getX(), e.getY()); // 显示弹出式菜单
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public static void main(String arg[]) {
new W8();
}
}
展开全部
msg.addMouseListener(this); // 注册文本区的鼠标事件监听器
show();
这段代码下面的括号括的是哪?在类括号内用ADD方法这怎么行,你有没有贴漏了代码?
show();
这段代码下面的括号括的是哪?在类括号内用ADD方法这怎么行,你有没有贴漏了代码?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你都没有设置点x就退出。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询