G
Gast2
Gast
Hallo zusammen,
kann man ein Accelerator immer verfügbar machen, auch wenn ein JDialog usw. gerade den Focus hat?
[HIGHLIGHT="Java"]
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;
public class TestMenue extends JFrame {
JMenuBar menuBar;
public TestMenue() {
menuBar = new JMenuBar();
JMenu test = new JMenu("test");
JMenuItem oeffnen = new JMenuItem("Öffnen");
oeffnen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JDialog dialog = new JDialog();
dialog.setSize(100, 100);
dialog.setVisible(true);
}
});
JMenuItem save = new JMenuItem("Save");
save.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Save soll immer funktionieren");
}
});
save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK));
test.add(oeffnen);
test.add(save);
menuBar.add(test);
setJMenuBar(menuBar);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 400);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new TestMenue().setVisible(true);
}
});
}
}
[/HIGHLIGHT]
Also wenn man auf öffnen klickt dann funktioniert STRG + S nicht mehr wie kann man das ändern? Nur über die InputMap??
kann man ein Accelerator immer verfügbar machen, auch wenn ein JDialog usw. gerade den Focus hat?
[HIGHLIGHT="Java"]
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;
public class TestMenue extends JFrame {
JMenuBar menuBar;
public TestMenue() {
menuBar = new JMenuBar();
JMenu test = new JMenu("test");
JMenuItem oeffnen = new JMenuItem("Öffnen");
oeffnen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JDialog dialog = new JDialog();
dialog.setSize(100, 100);
dialog.setVisible(true);
}
});
JMenuItem save = new JMenuItem("Save");
save.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Save soll immer funktionieren");
}
});
save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK));
test.add(oeffnen);
test.add(save);
menuBar.add(test);
setJMenuBar(menuBar);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 400);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new TestMenue().setVisible(true);
}
});
}
}
[/HIGHLIGHT]
Also wenn man auf öffnen klickt dann funktioniert STRG + S nicht mehr wie kann man das ändern? Nur über die InputMap??
Zuletzt bearbeitet von einem Moderator: