站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题帮我看一下这段代码 右键怎么失灵了

帮我看一下这段代码 右键怎么失灵了

摘要: 帮我看一下这段代码 右键怎么失灵了


代码如下(刚开始编代码,可读性很差,望谅解)
package PersonalFinaceSystem;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
import java.text.*;
import java.io.*;

public class PersonalFinaceSystem extends JFrame implements ActionListener,
ItemListener {
//创建控制面板
private JPanel mypanel = new JPanel();
//创建标签面板
private JPanel statusBar = new JPanel();
//界面按键
private JButton btnew, btmyac, btexit;
//创建标签
private JLabel author, welcome;

//右键菜单
private JPopupMenu mypop = new JPopupMenu();
//右键菜单项
private JMenuItem newacc, myac, exits;
//获取当前时间
private java.util.Date currDate = new java.util.Date();
private SimpleDateFormat sdf = new SimpleDateFormat(-#34;yyyy MM dd-#34;,
Locale.getDefault());
private String d = sdf.format(currDate);
// 构造函数
public PersonalFinaceSystem() {
//窗口名
super(-#34;PersonalFinaceSystem-#34;);

//创建界面按钮
btnew = new JButton(-#34;NEW ACCOUNT-#34;);
btnew.addActionListener(this);
btnew.setForeground(Color.blue);

btnew.setToolTipText(-#34;创建新账户-#34;);
btmyac = new JButton(-#34;MY ACCOUNT-#34;);
btmyac.setForeground(Color.blue);
btmyac.setToolTipText(-#34;我的账户-#34;);
btexit = new JButton(-#34;EXIT SYSTEM-#34;);
btexit.setForeground(Color.blue);
btexit.setToolTipText(-#34;退出系统-#34;);
//设置布局管理器
mypanel.setLayout(new FlowLayout(FlowLayout.CENTER, 200, 80));
//将按钮加入面板
mypanel.add(btnew);
mypanel.add(btmyac);
mypanel.add(btexit);
//控制面板提示
mypanel.setToolTipText(-#34;Welcome to the PersonalFianceSystem-#34;);
//创建标签
author = new JLabel(-#34; -#34; + -#34;XI-#39;AN.ETU.CES@copyright-#34;, JLabel.LEFT);
author.setForeground(Color.black);

welcome = new JLabel(-#34;Welcome Today is -#34; + d + -#34; -#34;, JLabel.RIGHT);
welcome.setForeground(Color.black);

statusBar.setLayout(new BorderLayout());
statusBar.add(author, BorderLayout.WEST);
statusBar.add(welcome, BorderLayout.EAST);

//创建右键菜单项
newacc = new JMenuItem(-#34;New Account-#34;);
newacc.addActionListener(this);
myac = new JMenuItem(-#34;MY ACCOUNT-#34;);
myac.addActionListener(this);
exits = new JMenuItem(-#34;EXIT-#34;);
exits.addActionListener(this);
//创建右键菜单
mypop.add(newacc);
mypop.addSeparator();
mypop.add(myac);
mypop.addSeparator();
mypop.add(exits);

//右键菜单响应
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me) {
checkMouseTrigger(me);
}

public void mouseReleased(MouseEvent me) {
checkMouseTrigger(me);
}

private void checkMouseTrigger(MouseEvent me) {
if (me.isPopupTrigger()) {
mypop.show(me.getComponent(), me.getX(), me.getY());
}
}
}
);


mypanel.add(mypop);

//加入当前面板

getContentPane().add(mypanel, BorderLayout.CENTER);
getContentPane().add(statusBar, BorderLayout.SOUTH);

//窗口最小化图标
setIconImage(getToolkit().getImage(-#34;Images/PersonalFinaceSystem.gif-#34;));
//窗口大小
setSize(400, 400);
//窗口出现的位置
setLocation(200, 300);

//窗口关闭事件处理
addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent we) {
quitApp();
}
}
);


setVisible(true);
}

//退出处理函数
private void quitApp() {

try {

int reply = JOptionPane.showConfirmDialog(this,
-#34;Are you really want to exit/nFrom PersonalFianceSystem?-#34;,
-#34;PersonalFianceSystem - Exit-#34;,
JOptionPane.YES_NO_OPTION,
JOptionPane.PLAIN_MESSAGE);

if (reply == JOptionPane.YES_OPTION) {
setVisible(false);
dispose();
System.out.println(-#34;Thanks for Using BankSystem-#34;);
System.exit(0);
} else if (reply == JOptionPane.NO_OPTION) {
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
}
}

catch (Exception e) {}

}



//加入图象


//事件处理方法
public void actionPerformed(ActionEvent ae) {
Object obj = ae.getSource();
if (obj == btnew) {

}
}

public void itemStateChanged(ItemEvent e) {
}

//主函数
public static void main(String[] args) {

PersonalFinaceSystem main = new PersonalFinaceSystem();
}


}
问题是右键无法在mypanel里显示,只能在statusBar显示


你可以试试把mypanel里同样注册一个事件

mypanel.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me) {
checkMouseTrigger(me);
}

public void mouseReleased(MouseEvent me) {
checkMouseTrigger(me);
}

private void checkMouseTrigger(MouseEvent me) {
if (me.isPopupTrigger()) {
mypop.show(me.getComponent(), me.getX(), me.getY());
}
}
}
);


↑返回目录
前一篇: JAVA里怎么解决占位符啊
后一篇: 很奇怪,javac不能识别