Hallo ich versuche, 2 Arrays zu verwenden, um eine JMenuBar mit JMenus und JMenuItems zu erstellen. Ich bin ziemlich neu in der Verwendung von GUI, ich habe eine Klasse, um dies zu erreichen, aber es funktioniert einfach nicht.JMenuBar Erstellung mit Schleife und String-Arrays Fehler
import java.util.*;
import javax.swing.*;
public class MenuBar {
String[] titulos = {"Raices","Sistemas","Interpolacion","Dif. e Int.","Ecuaciones"};
String[][] subTitulos = {{"Biseccion","Falsa Posicion","Secante","Newton-Rhapson","Aprox. Sucesivas","Newton 2ndo. Orden"},
{"Gauss","Gauss-Jordan","Montante","Cramer","Jacobi","Gauss-Seidel"},
{"Diferencias Finitas","Newton","LaGrange","Min. Cuadrados"},
{"Por Limites","Diferencias Finitas","Trapecio","Trapecio","Simpson","Simpson"},
{"Euler","Euler-Gauss"}};
public JMenuBar menuBar = new JMenuBar();
public JMenu[] menus;
public List<List<JMenuItem>> menuItems;
public MenuBar(){
menus = new JMenu[titulos.length];
menuItems = new ArrayList<List<JMenuItem>>();
for (int i=0;i<titulos.length;i++){
menus[i]= new JMenu(titulos[i]);
menuItems.add(new ArrayList<JMenuItem>());
for(int j=0;j<subTitulos[i].length;j++){
menuItems.get(i).add(new JMenuItem(subTitulos[i][j]));
menus[i].add(menuItems.get(i).get(j));
}
menuBar.add(menus[i]);
}
}
}
Der Code funktioniert bis zu dem Punkt, wo ich die JMenu ist erstellen, die einwandfrei funktioniert. Aber sobald ich ein JMenuItem in der zweiten Schleife erzeuge, bricht es, selbst wenn ich es nicht speichere oder anhefte, einfach ab und es zeigt nicht die Menüleiste im Rahmen an.
Es ist ziemlich seltsam, weil es tatsächlich funktioniert, sehr selten, was noch verwirrender ist.
das ist meine Hauptklasse:
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame("Menu");
frame.setVisible(true);
frame.setSize(900, 800);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MenuBar menuBar = new MenuBar();
frame.setJMenuBar(menuBar.menuBar);
}
}
Vielen Dank, das war es. Ich bin ziemlich neu in GUI, also war ich mir nicht bewusst. – user2620232