Hallo,
ich habe folgendes Layout(nicht vollständig) erstellt. Es geht nur um die komponentenaufteilung!
Meine Vorstellung war, dass ich oben eine Leiste mit Buttons habe.
In der Mitte, links einen JTree und rechts ein JPanel.
Unten ein Textfeld.
Ich habe dem JFrame ein Borderlayout zugewiesen.
Dann habe ich für meine Buttonleiste oben ein Panel mit GridLayout(0,3) erstellt und dem JFrame in BorderLayout.NORTH zugewiesen.
Den JTree habe ich dem JFrame in BorderLayout.WEST zugwiesen.
Den JPanel BorderLayout.EAST.
Textfeld BorderLayout.SOUTH.
Frage:
Ist das Layout so ok, oder gibt es da eine schönere Lösung?
Eigentlich wollte ich dass die Buttons von links nach rechts geordnet werden. Im Moment habe ich 3 Buttons die den gesamte Platz beanspruchen. Besser wäre es, wenn sie nur den benötigten Platz einehmen und der restliche Platz bleibt einfach leer.
ich habe folgendes Layout(nicht vollständig) erstellt. Es geht nur um die komponentenaufteilung!
Meine Vorstellung war, dass ich oben eine Leiste mit Buttons habe.
In der Mitte, links einen JTree und rechts ein JPanel.
Unten ein Textfeld.
Ich habe dem JFrame ein Borderlayout zugewiesen.
Dann habe ich für meine Buttonleiste oben ein Panel mit GridLayout(0,3) erstellt und dem JFrame in BorderLayout.NORTH zugewiesen.
Den JTree habe ich dem JFrame in BorderLayout.WEST zugwiesen.
Den JPanel BorderLayout.EAST.
Textfeld BorderLayout.SOUTH.
Frage:
Ist das Layout so ok, oder gibt es da eine schönere Lösung?
Eigentlich wollte ich dass die Buttons von links nach rechts geordnet werden. Im Moment habe ich 3 Buttons die den gesamte Platz beanspruchen. Besser wäre es, wenn sie nur den benötigten Platz einehmen und der restliche Platz bleibt einfach leer.
Code:
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.GridLayout;
import java.awt.TextField;
import javax.swing.JPanel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
public class CardLayoutDemo extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private static String ADD_COMMAND = "add";
private static String REMOVE_COMMAND = "remove";
private static String CLEAR_COMMAND = "clear";
CardLayout cl = new CardLayout();
JPanel panel = new JPanel(cl);
JTree treePanel;
public void actionPerformed(ActionEvent arg0) {
// TODO Automatisch erstellter Methoden-Stub
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Automatisch erstellter Methoden-Stub
SwingUtilities.invokeLater(new Runnable() {
public void run() {
CardLayoutDemo thisClass = new CardLayoutDemo();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
}
/**
* This is the default constructor
*/
public CardLayoutDemo() {
JPanel blankPanel = new JPanel();
blankPanel.setBorder(BorderFactory.createTitledBorder("Blank Panel"));
panel.add(blankPanel, "0");
setSize(600, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().setLayout(new BorderLayout());
treePanel = new JTree();
getContentPane().add(treePanel,BorderLayout.WEST);
getContentPane().add(panel,BorderLayout.CENTER);
JButton addButton = new JButton("Add");
addButton.setActionCommand(ADD_COMMAND);
addButton.addActionListener(this);
JButton removeButton = new JButton("Remove");
removeButton.setActionCommand(REMOVE_COMMAND);
removeButton.addActionListener(this);
JButton clearButton = new JButton("Clear");
clearButton.setActionCommand(CLEAR_COMMAND);
clearButton.addActionListener(this);
JPanel panel3 = new JPanel(new GridLayout(0,3));
panel3.add(addButton);
panel3.add(removeButton);
panel3.add(clearButton);
add(panel3, BorderLayout.NORTH);
add(new TextField(), BorderLayout.SOUTH);
cl.show(panel, "0");
}
/**
* This method initializes this
*
* @return void
*/
}