Permalänk
Medlem

[Java] Lägga till menu-problem

Jag har lite problem med att få min menu att visa sig i lvcMainWindow, och jag kommer inte på nåt sätt att lägga till den så att den inte genererar massa fel...
Här kommer filerna i alla fall:

//lvc.java /** lvc - LedningsVakt Central * * Version: 0.0.1alpha1 * */ /** * lvc - The name of the game */ class lvc { /** * Main Class */ public static void main(String[] args) { /** * call the main window */ new lvcMainWindow(); } }

//lvcMainWindow.java /* Import AWT & SWING for graphics components */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; //public class lvcMainWindow extends JFrame implements ActionListener { public class lvcMainWindow extends JFrame { /** lvcMainWindow Constructor */ public lvcMainWindow() { /** Construct a JDesktopPane named: lvcMW */ JDesktopPane lvcMW = new JDesktopPane(); /* lvcMW Title: LedningsVakt Central */ setTitle("LedningsVakt Central"); /* lvcMW Bounderies and Size */ setBounds(15, 15, 600, 440); /* Make lvcMW Visible */ setVisible(true); /* not sure what this does */ setContentPane(lvcMW); /* Make a nice colored background */ lvcMW.setBackground(new Color(50, 50, 50)); /* Add operation for exit */ addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent eaEvent) { exitApp(eaEvent); } }); /** Add the menubar */ //lvcMenuBar(); } /** lvcMenuBar Constructor */ public void lvcMenuBar() { /** Call for the menubar */ new lvcMenuBar(); } /** Exit the Application */ private void exitApp(WindowEvent eaEvent) { System.exit(0); } }

//lvcMenuBar.java /* Import AWT & SWING for graphics components */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class lvcMenuBar { public lvcMenuBar() { JMenuBar lvcMB = new JMenuBar(); JMenu lvcMenuFile = new JMenu(); JMenuItem mbFileExit = new JMenuItem(); lvcMenuFile.setText("Arkiv"); mbFileExit.setText("Avsluta"); mbFileExit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent mbEvent) { mbFileExit(mbEvent); } }); lvcMenuFile.add(mbFileExit); lvcMB.add(lvcMenuFile); } private void mbFileExit(ActionEvent mbEvent) { /** * When Arkiv(File)/Avsluta(Exit) is pressed, exit application. */ System.exit(0); // Add your handling code here: } }

Jag har säkert missat nåt basic bara...

Som hur jag får lvcMenuBar att lägga sig i min JDesktopPane i lvcMainWindow...

De flesta saker jag testat ger mig unresolved symbols, eller declaration type missing.

Den koden som är ovan, kompilerar utan errors, körs ok, men uten menuBaren...

Visa signatur

¤Hakuna Matata¤
# Ibland försvinner 'j', 'å', 'ä' och 'ö'...
Signatur redigerad av GAPa. I textstorlek tre får man bara ha en rad.

Permalänk
Medlem

hej hej

vid en snabb titt på koden verkar det som om du 1. inte anropar setjmenubar någonstans (dvs den metod med vilken du lägger till en meny till ett fönster) 2. din jmenybarklass _är_ ingen JMenuBar utan du deklararer bara några variabler inuti som du sedan inte använder.

min förslag är:

class lvcMenuBar extends JMenuBar{
public....

sedan får du ta bort deklarationen av menubaren inuti klassen men det förstår du nog.

sedan anropar du i lvcMain setJMenuBar(new lvcMenuBar) så här

Permalänk
Medlem

Hej.
JAg noterade de efter mycket slit å kompileringsfel, då jag inte fick in setJMenuBar på rätt ställe...

Jag har nu fått frram denna lösning (efter att först ha löst meny-frågan, och sedan tagit itu med default-storlek på fönstret):

/* * lvc - LedningsVakt Central * * Version: 0.0.1alpha1 * */ /* lvc - The name of the game */ class lvc { /* Main Class */ public static void main(String[] args) { /* call the main window */ new lvcMainWindow(); } }

/* Import AWT & SWING for graphics components */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; //public class lvcMainWindow extends JFrame implements ActionListener { public class lvcMainWindow extends JFrame { /* lvcMainWindow Constructor */ public lvcMainWindow() { /* Construct a JDesktopPane named: lvcMW */ JDesktopPane lvcMW = new JDesktopPane(); /* lvcMW Title: LedningsVakt Central */ this.setTitle("LedningsVakt Central"); /* lvcMW Bounderies and Size */ this.setBounds(15, 15, 600, 440); /* lvcMW Preferred Size */ lvcMW.setPreferredSize(new Dimension(600, 440)); /* Make lvcMW Visible */ this.setVisible(true); /* not sure what this does */ this.setContentPane(lvcMW); /* Make a nice colored background */ lvcMW.setBackground(new Color(50, 50, 50)); /* Add MenuBar to the main window */ new lvcMenuBar(this); this.pack(); /* Add operation for exit */ addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent eaEvent) { exitApp(eaEvent); } }); } /* Exit the Application */ private void exitApp(WindowEvent eaEvent) { System.exit(0); } }

/* Import AWT & SWING for graphics components */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class lvcMenuBar { /* lvcMenuBar Constructor */ public lvcMenuBar(JFrame lvcMenuFrame) { /* Declare the MenuBar, Menu and MenuItems */ JMenuBar lvcMB = new JMenuBar(); JMenu lvcMenuFile = new JMenu(); JMenuItem mbFileExit = new JMenuItem(); /* Name the 'File' Menu */ lvcMenuFile.setText("Arkiv"); /* Add 'Exit' MenuItem to 'File' Menu */ mbFileExit.setText("Avsluta"); /* Add ActionListener to 'File/Exit' */ mbFileExit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent mbEvent) { mbFileExit(mbEvent); } }); /* Add the MenuBar */ lvcMenuFrame.setJMenuBar(lvcMB); /* Add the 'File' Menu */ lvcMB.add(lvcMenuFile); /* Add 'Exit' MenuItem to 'File' Menu */ lvcMenuFile.add(mbFileExit); } /* File/Exit eventHandler */ private void mbFileExit(ActionEvent mbEvent) { /* When Arkiv(File)/Avsluta(Exit) is pressed, exit application */ System.exit(0); } }

Det är som sagt löst, och jag hade tänkt ta bort denna tråden, men låter det nu vara kvar eftersom de kanske kan hjälpa nån annan oxå.

Är det sämre att inte 'implements JMenuBar' och ta bort deklarationen inne i klassen, eller ha det som det är nu?

Visa signatur

¤Hakuna Matata¤
# Ibland försvinner 'j', 'å', 'ä' och 'ö'...
Signatur redigerad av GAPa. I textstorlek tre får man bara ha en rad.