هنا فى ال code التاليى :
الجزئية الأولى : أريد عندما أضغط على alt+T يتم فتح قائمة ال file تم عملها باستعمال ال setMenimonic()
الجزئية الثانية : و أريد أيضاً عندما أكتب حرف فى ال textfield يتم عرض هذا الحرف فى dialoog تم عملها أيضاً باستعمال الدالة getChar()
و لكن عندم أضفت الجزئية الثانية تم إبطال عمل الجزئية الأولى - أى عندما أضغط alt+t لا تنفتح القائمة open . ما الشكلة فى هذا ؟؟!!
-------------------------------------------------------------
الشفيرة :
-------------
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class TestKeyBoard extends JFrame implements KeyListener {
private JPanel panel, mainPanel;
private JTextField textField;
private JMenu fileMenu;
private JMenuBar menuBar;
private JMenuItem[] menuItems;
private String[] menuItemNames = {"open", "save", "exit"};
public TestKeyBoard() {
panel = new JPanel(new BorderLayout());
mainPanel = new JPanel(new FlowLayout());
textField = new JTextField(10);
textField.addKeyListener(this);
mainPanel.add(textField);
panel.add(mainPanel, BorderLayout.WEST);
getContentPane().add(panel);
///////////////////////////////////////////////
menuBar = new JMenuBar();
fileMenu = new JMenu("file");
fileMenu.addKeyListener(this);
menuItems = new JMenuItem[menuItemNames.length];
for (int i = 0; i < menuItemNames.length; ++i) {
menuItems = new JMenuItem(menuItemNames);
// menuItems.addKeyListener(this);
fileMenu.add(menuItems);
menuBar.add(fileMenu);
}
setJMenuBar(menuBar);
}
public static void main(String[] args) {
TestKeyBoard testKeyBoard = new TestKeyBoard();
testKeyBoard.setDefaultCloseOperation(TestKeyBoard.EXIT_ON_CLOSE);
testKeyBoard.setSize(new Dimension(600, 300));
testKeyBoard.setLocationRelativeTo(null);
testKeyBoard.setVisible(true);
}
public void keyTyped(KeyEvent e) {
int id = e.getID();
if (id == KeyEvent.KEY_TYPED) {
char c = e.getKeyChar();
JOptionPane.showMessageDialog(null, "The char you typed is:" + c);
}
}
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
if (e.isAltDown()) {
fileMenu.setMnemonic(KeyEvent.VK_T);
}
}
}شكراً