Miért nem jelenik meg a JMenuBar a programomban?
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]
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.
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?
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
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!