Reputation: 570
I wanted to make a different function to make menubar for java application.
In menubar function frame.pack()
in action listeners and frame.setJMenuBar
statements are required.
So how can we pass frame as object to subclass as argument? I get errors in
imports..
public class sjava {
public static void CreateAndRunGUI() {
final JFrame frame = new JFrame("MyFrame");
code..
MakeMenuBar(frame);
frame.pack();
frame.setVisible(true);
}
public static void MakeMenuBar(Object frame) {
JMenuBar menubar = new JMenuBar();
menubar.setBackground(new Color(180,160,130));
menubar.setOpaque(true);
menubar.setPreferredSize(new Dimension(800,20));
frame.setJMenuBar(menubar);
JMenu menu1 = new JMenu("menu1");
code..
mitem1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent a) {
code..
SwingUtilities.updateComponentTreeUI(frame);
frame.pack();
}
});
code..
mitem2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent a) {
code..
SwingUtilities.updateComponentTreeUI(frame);
frame.pack();
}
});
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
CreateAndRunGUI();
}
});
}
Can makemenubar
function be used without using frame as an argument?
Upvotes: 0
Views: 809
Reputation: 39217
You'll have to replace
public static void MakeMenuBar(Object frame) {...}
with
public static void MakeMenuBar(JFrame frame) {...}
otherwise no methods of class JFrame
will be accessible.
Upvotes: 1