Java Gridlayout?
Hi, also ich versteh irgendwie nicht warum ich hier die die visibility von meinem Fenster nicht auf true setzten kann?
public class gridlayout {
private static JLabel createLabel(int fontSize, Color test, String position) {
var label = new JLabel(position);
label.setBackground(test);
label.setOpaque(true);
int border = 5;
label.setBorder(BorderFactory.createEmptyBorder(border, border, border, border));
label.setFont(new Font("Verdana", Font.BOLD, fontSize));
return label;
}
public gridlayout(){
var newpanel = new JPanel();
newpanel.setLayout(new GridLayout(2,3));
Color farbe3 = new Color(90, 10, 80);
Color farbe2 = new Color(4, 90, 100);
newpanel.add(createLabel(10, farbe2, "Zeile(1,1"));
newpanel.add(createLabel(10, farbe2, "Zeile(1,2"));
newpanel.add(createLabel(10, farbe2, "Zeile(1,3"));
newpanel.add(createLabel(10, farbe3, "Zeile(2,1"));
newpanel.add(createLabel(10, farbe3, "Zeile(2,2"));
newpanel.add(createLabel(10, farbe3, "Zeile(2,3"));
//warum geht :
//this.add(newpanel)
//pack();
//setVisible(true);
//nicht?
}
public static void main(String[] args) {
new gridlayout();
}
Hoffe jemand kann mir helfen, bin neu bei Java ;)
Gruß
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren, Java, Programmieren & Softwareentwicklung
Deine Klasse besitzt die Methoden nicht, daher kannst du sie auch nicht aufrufen. Entweder lässt du die Klasse von JFrame erben oder du legst eine JFrame-Instanz an, über die du die Methoden aufrufst.
JFrame frame = new JFrame();
// create panel, etc. ...
frame.add(newPanel);
frame.pack();
frame.setVisible(true);
Ah, stimmt hatte vergessen sie erben zu lassen. Danke dir!