Wie verwenden von Java-Swing-Aktionen zu erstellen, Menüpunkte und symbolleistenelemente in Netbeans
Lese ich ein java-Buch und der Autor schafft Menüelemente und Symbolleisten-Elemente, die mit der gleichen Aktion.
Wie kann ich das mit NetBeans?
Hier ist der code :
public class ActionInterfaceDemo extends JFrame{
private JPanel buttonPanel = new JPanel();
private FlowLayout flowLayout = new FlowLayout();
//---Default constructor
public ActionInterfaceDemo()
{
//Create image icons
ImageIcon leftImageIcon = new ImageIcon(getClass().getResource("image/leftAlignment.png"));
ImageIcon centerImageIcon = new ImageIcon(getClass().getResource("image/centerAlignment.png"));
ImageIcon rightImageIcon = new ImageIcon(getClass().getResource("image/rightAlignment.png"));
//Create actions
Action leftAction = new MyAction("Left", leftImageIcon, "Left alignment for the buttons in the panel", new Integer(KeyEvent.VK_L), KeyStroke.getKeyStroke(KeyEvent.VK_L, ActionEvent.CTRL_MASK));
Action centerAction = new MyAction("Center",centerImageIcon, "Center alignment for the buttons in the panel", new Integer(KeyEvent.VK_C), KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK));
Action rightAction = new MyAction("Right", rightImageIcon, "Right alignment for the buttons in the panel", new Integer(KeyEvent.VK_R), KeyStroke.getKeyStroke(KeyEvent.VK_R, ActionEvent.CTRL_MASK));
//Create menus
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jmenuAlignment = new JMenu("Alignment");
setJMenuBar(jMenuBar1);
jMenuBar1.add(jmenuAlignment);
//Add actions to the menu
jmenuAlignment.add(leftAction);
jmenuAlignment.add(centerAction);
jmenuAlignment.add(rightAction);
//Add actions to the toolbar
JToolBar jToolBar1 = new JToolBar(JToolBar.HORIZONTAL);
jToolBar1.setBorder(BorderFactory.createLineBorder(Color.red));
jToolBar1.add(leftAction);
jToolBar1.add(centerAction);
jToolBar1.add(rightAction);
//Add buttons to the button panel
buttonPanel.setLayout(flowLayout);
JButton jbtLeft = new JButton(leftAction);
JButton jbtCenter = new JButton(centerAction);
JButton jbtRight = new JButton(rightAction);
buttonPanel.add(jbtLeft);
buttonPanel.add(jbtCenter);
buttonPanel.add(jbtRight);
//Add toolbar to the east and panel to the center
add(jToolBar1, BorderLayout.NORTH);
add(buttonPanel, BorderLayout.CENTER);
}
//inner class MyAction
private class MyAction extends AbstractAction
{
String name;
MyAction(String name, Icon icon)
{
super(name, icon);
this.name = name;
}
MyAction(String name, Icon icon, String desc, Integer mnemonic, KeyStroke accelerator)
{
super(name,icon);
putValue(Action.SHORT_DESCRIPTION, desc);
putValue(Action.MNEMONIC_KEY, mnemonic);
putValue(Action.ACCELERATOR_KEY, accelerator);
this.name = name;
}
@Override
public void actionPerformed(ActionEvent e) {
if (name.equals("Left"))
flowLayout.setAlignment(FlowLayout.LEFT);
else if (name.equals("Center"))
flowLayout.setAlignment(FlowLayout.CENTER);
else if (name.equals("Right"))
flowLayout.setAlignment(FlowLayout.RIGHT);
buttonPanel.revalidate();
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//TODO code application logic here
ActionInterfaceDemo frame = new ActionInterfaceDemo();
frame.setLocationRelativeTo(null); //Center the frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("ActionInterfaceDemo");
//frame.pack();
frame.setSize(new Dimension(600, 200));
frame.setVisible(true);
}
}
Danke.
Was meinst du mit gleiche Aktion?
Ich meine, dass die gleiche Aktion verwendet im Konstruktor der beiden JMenu und JToolBar mit Ihren add-Methode.
Ich versuche jetzt zum hinzufügen von code manuell zu Netbeans JForm, die ich erstellt habe.Ich glaube, wenn du weißt, was du tust , ist es kein problem.
Ich meine, dass die gleiche Aktion verwendet im Konstruktor der beiden JMenu und JToolBar mit Ihren add-Methode.
Ich versuche jetzt zum hinzufügen von code manuell zu Netbeans JForm, die ich erstellt habe.Ich glaube, wenn du weißt, was du tust , ist es kein problem.
InformationsquelleAutor skiabox | 2012-09-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beide
JMenuItem
undJButton
haben einesetAction()
Methode, die Sie verwenden können, für die Einstellung der gleichen Instanz von IhrAction
.FileMenu
ist ein Verwandtes Beispiel.Ich entschied mich für die Programmierung von hand mit Konstruktoren.Ich kann nicht sehen, das Ergebnis mit der Vorschau oder im Designmodus, aber ich kann es sehen, wenn ich das Projekt ausführen.
InformationsquelleAutor Dan D.