Technikfreund
Banned
- Registriert
- Okt. 2018
- Beiträge
- 152
Ich mache gerade meine ersten Gehversuche mit Swing und AWT. Ich las, dass man die Position und Größe der Elemente mit Methoden bestimmen kann. Ich versuche nun, mithilfe der Methoden das Layout zu gestalten, ohne den Weg über Layoutklassen zu gehen.
Das scheint aber nicht zu funktionieren. Java stellt den Löschknopf zentriert dar und legt auf meine Wunschvorstellungen einen großen Haufen. Wie kommt es zu diesem Verhalten? Was muss ich ändern, damit
und
wie gewünscht funktionieren?
Eine Programmbeschreibung ist dem Anfangskommentar des Quelltextes zu entnehmen.
Das scheint aber nicht zu funktionieren. Java stellt den Löschknopf zentriert dar und legt auf meine Wunschvorstellungen einen großen Haufen. Wie kommt es zu diesem Verhalten? Was muss ich ändern, damit
Code:
setSize()
Code:
setPosition()
Eine Programmbeschreibung ist dem Anfangskommentar des Quelltextes zu entnehmen.
Code:
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JList;
/*
In dieser Anwendung gibt es eine Auswahlliste, dessen gesamter Inhalt über den
Löschknopf gelöscht werden kann, und zu dessen Liste aber auch über ein
Eingabefeld und einem Hinzufügeknopf ein Eintrag hinzugefügt werden kann.
*/
public class ListFrame extends JFrame {
private Container container;
public ListFrame() {
// Liste erzeugen
String[] data = {"eins", "zwei", "drei", "vier"};
JList<String> list = new JList<>(data);
list.setLocation(10, 10);
list.setSize(200, 200);
// Löschknopf
JButton deleteButton = new JButton("Delete");
deleteButton.setLocation(210, 10);
deleteButton.setSize(50, 20);
// Eingabefeld
JTextField textField = new JTextField();
textField.setLocation(10, 220);
textField.setSize(100, 20);
// Hinzufügeknopf
JButton inputButton = new JButton("Input");
inputButton.setLocation(220, 220);
inputButton.setSize(50, 20);
// Basiscontainer ansprechen und alle Elemente hinzufügen
container = getContentPane();
container.add(list);
container.add(deleteButton);
container.add(textField);
container.add(inputButton);
}
public static void main(String[] args) {
ListFrame frame = new ListFrame();
frame.setTitle("List");
frame.setSize(800, 600);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}