import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MainPanel
extends JFrame {
public MainPanel() {
super("Dummy Programm - Hauptmenü");
JPanel topPanel = new JPanel();
topPanel.setLayout(new BoxLayout(topPanel, BoxLayout.X_AXIS));
topPanel.add(addButton("Getränke", 500, 30));
add(topPanel, BorderLayout.NORTH);
addWindowListener(new CloseWindow(true));
setSize(800, 600);
setVisible(true);
}
private JButton addButton(String label, int size_x, int size_y) {
JButton btn = new JButton(label);
//btn.setSize(new Dimension(size_x, size_y));
//btn.setSize(size_x, size_y);
btn.setPreferredSize(new Dimension(size_x, size_y));
return btn;
}
}
Linie 25-27 sind meine Ansätze um die Grösse des Buttons zu modifizeren. Es werden jedoch alle ignoriert. Das Ergebnis ist das Selbe, wie wenn ich die drei Linien weglassen würde. Natürlich sind immer zwei davon zur Laufzeit auskommentiert.
Habe ich einen besonderen Kniff nicht beachtet, der beim Einsatz solcher Methoden unabdingbar ist?
Ich hab des öfteren das gleiche Problem, wenn man den Button einer Komponente hinzufügt wird er (weshalb auch immer) skaliert. Bei mir hilft es, wenn ich den Button vorher in ein Panel verpacke und dieses dann hinzufüge.
Code:
JPanel helper = new JPanel();
helper.add(addButton("Getränke", 500, 30));
topPanel.add(helper);
Das habe ich jetzt so umgesetzt. Jedoch haben die verschiedenen Buttons nun einen Abstand zwischen sich. Ich möchte aber eigentlich, dass die Buttons nahtlos aneinander anfügen. Wie kann ich das erreichen?
Ah ja ich hatte jetzt mein Schlüsselerlebnis Diese ganzen verschiedenen Layouts muss man kombinieren, um auf das gewünschte Ergebnis zu kommen. Ist wohl sowas wie mit der <table><tr><td> - Struktur in HTML.
Except for variables, all instance, class, and class constants are in mixed case with a lowercase first letter. Internal words start with capital letters. Variable names should not start with underscore _ or dollar sign $ characters, even though both are allowed.
Variable names should be short yet meaningful. The choice of a variable name should be mnemonic- that is, designed to indicate to the casual observer the intent of its use. One-character variable names should be avoided except for temporary "throwaway" variables. Common names for temporary variables are i, j, k, m, and n for integers; c, d, and e for characters.
Bin ich jetzt grad ganz verwirrt oder wiedersprichst du dir gerade selbst ???:L
Da steht doch nur, das Variablen nicht mit _ starten sollen, _oder _? :?
Muss ich eigentlich in der Funktion "public static void main()" ein JFrame-Objekt instanzieren, wenn die Hauptklasse von der Klasse JFrame erbt ("public class Main extends JFrame")?
sowie sicherlich 99% von tausenden Variablen in allen Java-Standard-Klassen/ Lehrbüchern/ Tutorials/ Code in Foren (von Nicht-Anfängern) was immer man nehmen möchte:
kein Unterstrich
dagegen z.B.
Beispiel-Konstanten-Namen auf der Seite dort:
Ich hab mein Programm nun umgebaut und starte aus public static void main() verschiedene Methoden in der klasse ContentManager, die mir dann Header, Hauptteil und Footer ausgeben.
Die Frage ist jetzt eben, ob ich in public static void main() ein JFrame initialisieren muss, obwohl ich eigentlich von der Klasse erbe...
einfach in der main new MainPanel() schreiben, und schohn wird dein Fenster geöffnet und die "Steuerung" geht an dein Fenster und alle seine Methoden
#edit:
dein Fenster wird dann im Konstruktor deiner MainPanel klasse gebaut