作者WingedDragon (黄金会死鸟-死後无法复活)
看板java
标题[问题] 滑鼠左右按键事件
时间Tue Aug 2 13:08:25 2016
设定左右按键事件接收後, 每次按下左键会多出一次事件
也就是我原先预定左键按一次, 跳一次输入框
当我要加入多组文字时, 後面按一次左键输入文字, 之後还会持续跳出输入框
可能是按键监听事件写坏
请各位高手看看应该怎麽改
谢谢
原始码相关部分
private List<JButton> item = new ArrayList<JButton>();
private Object clickButton = null;
public void paintTable() {
frameTable.setLayout(new GridLayout(3,0));
buttonPop popup = new buttonPop();
for (int i = 0; i < item.size(); i++) {
frameTable.add(item.get(i));
item.get(i).setVisible(true);
item.get(i).addMouseListener(popup);
}
}
private class buttonPop extends MouseAdapter {
public void mousePressed(MouseEvent me) {
if (SwingUtilities.isRightMouseButton(me)) {
popupMenu = new JPopupMenu();
LinkedList<JMenuItem> popupItem = new LinkedList<JMenuItem>();
clickButton = me.getSource();
PopupSelect select = new PopupSelect();
for (int i = 0; i < item.size(); i++) {
JMenuItem tmpItem = new JMenuItem(item.get(i).getText());
tmpItem.addActionListener(select);
popupItem.addLast(tmpItem);
}
while (!popupItem.isEmpty()) {
popupMenu.add(popupItem.removeFirst());
if (!popupItem.isEmpty())
popupMenu.addSeparator();
}
popupMenu.show(me.getComponent(), me.getX(), me.getY());
}
else if (SwingUtilities.isLeftMouseButton(me)) {
String newLeaveItem = JOptionPane
.showInputDialog(mainFrame, "Enter a new item, ex :",
"输入其他字");
if (newLeaveItem == null) {
return;
}
for (int i = 0; i < item.size(); i++) {
if (item.get(i).getText().equals(newLeaveItem)) {
JOptionPane.showMessageDialog(null,
"Duplicated items", "Warning",
JOptionPane.WARNING_MESSAGE);
return;
}
}
item.add(new JButton(newLeaveItem));
paintTable();
mainFrame.revalidate();
}
}
}
private class PopupSelect implements ActionListener {
public void actionPerformed(ActionEvent ae) {
String selectItem = ae.getActionCommand();
if (item.contains((JButton) clickButton)) {
((JButton) clickButton).setText(selectItem);
}
}
}
--
历代主角: 武藤
游戏---神抽
游城十代---强运 不动
游星---印卡 九十九
游马---搓牌
翼神龙 效果:
此卡不可特殊召唤...
神兽王 表示:同样三祭品 我免费炸半场外加三千打点
裁龙 表示:同样支一千 我能炸全场还不用扣血加攻
巨神兵 表示:听说我可以特召
天空龙 表示:我现在可以捏死原作狂特召的你
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.7.181
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1470114510.A.AC8.html