Kezdőoldal » Számítástechnika » Programozás » Miért nem jelenik meg a...

Miért nem jelenik meg a JMenuBar a programomban?

Figyelt kérdés

Helló mindenki!

A kód:


import java.awt.FlowLayout;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;


public class gyakorlókeretWithMainMethod extends JFrame {


private static final long serialVersionUID = 1L;


public static void main(String[] args) {

JFrame frame= new JFrame();

frame.setTitle("gyakorlás");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(500,500);

frame.setLayout(new FlowLayout());

frame.setVisible(true);


JMenuBar bar= new JMenuBar();

JMenu file = new JMenu();

JMenuItem save= new JMenuItem("save");

JMenuItem load= new JMenuItem("load");

JMenuItem exit= new JMenuItem("exit");

JButton gomb= new JButton("sör");


frame.add(gomb);

frame.setJMenuBar(bar);

bar.add(file);

file.add(save);

file.add(load);

file.addSeparator();

file.add(exit);



}


}


A kód eredménye: [link]



2018. júl. 25. 17:15
 1/3 anonim ***** válasza:

Több ok miatt sem. Mivel a UI komponenseket nem a UI threaden pakolod össze, így nemdeterminisztikus az eredmény. Nálam például a "sör" gomb sem jelenik meg. Minden UI komponenst a UI threaden kell birizgálni, különben paranormális jelenségek tanúi leszünk. Nem mennék bele a miértekbe, valószínűleg még nagyon sokat kell olvasnod többszálú programozás témakörben. A lényeg, hogy használd a SwingUtilities.invokeAndWait() vagy SwingUtilities.invokeLater() metódusokat.


A másik, hogy azután kell a frame láthatóságát true-ra állítani, hogy minden UI elemet rápakoltál.


Végül pedig nem adtál nevet a file menu itemnek, így valójában ott lesz a menu, de csak egy nagyon pici doboz, amíg véletlenül rá nem kattintasz. Adj át a konstruktornak valami értelemes nevet stringként és meg fog jelenni, ha az előző két problémát is megoldottad.

2018. júl. 25. 19:44
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:

Köszönet a megfigyeléseidért! Az utolsó két hibát kijavítottam és így megjelent a dolog. Bevallom a többszálú programozásról semmit sem tudok, de utána fogok olvasni. (Egy hónapja kezdtem el programozni).

Ezidáig a Tantusz Java könyvét olvastam el. Esetleg lenen valamilyen tanácsod azzal kapcsolatban, hogy milyen könyvet lenen érdemes következőleg elolvasnom?

2018. júl. 25. 21:14
 3/3 anonim ***** válasza:

Ha most kezdted, akkor érdemes végigolvasni a basics részt innen: [link]

Meg talán a swinges részt is, ha swinget szeretnél használni. Mondjuk kezdetekben felesleges grafikus programokat írni, bőven van mit tanulni konzolos alkalmazásokkal is.


Ha könyvet szeretnél és jobban el akarsz mélyedni a nyelv alapjaiban, akkor amazonon ezekre keress rá:

Oracle Certified Associate Java SE 8 Programmer I Study Guide

Oracle Certified Professional Java SE 8 Programmer II Study Guide

2018. júl. 25. 22:16
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!