hallo Leute,
habe ein kleines Problem!!
Ich versuche ein Layout zu erstellen. Habe allerdings Probleme dass so zu machen, wie ich es will.
Wiefolgt möchte ich es realisieren.
Mein JFrame hat das Borderlayout.
Auf BorderLayout.NORTH kommt eine Toolbar.
Auf BorderLayout.WEST kommt ein JPanel.
Auf BorderLayout.CENTER kommt ein JPanel mit Cardlayout.
Auf Auf BorderLayout.SOUTH kommt eine JTextArea.
Soweit sogut.
Ich möchte aber im Bereich BorderLayout.SOUTH über der TextArea einen Button "refresh" platzieren.
der button soll aber nicht die komplette breite beanspruchen. Lediglich links über dem TextArea erscheinen.
Habe gedacht ich könnte es so machen, dass ich
funktioniert aber nicht.
Wie kann ich das Problem am besten lösen?
Der komplette Code
danke für eure hilfe!
sunny
habe ein kleines Problem!!
Ich versuche ein Layout zu erstellen. Habe allerdings Probleme dass so zu machen, wie ich es will.
Wiefolgt möchte ich es realisieren.
Mein JFrame hat das Borderlayout.
Auf BorderLayout.NORTH kommt eine Toolbar.
Auf BorderLayout.WEST kommt ein JPanel.
Auf BorderLayout.CENTER kommt ein JPanel mit Cardlayout.
Auf Auf BorderLayout.SOUTH kommt eine JTextArea.
Soweit sogut.
Ich möchte aber im Bereich BorderLayout.SOUTH über der TextArea einen Button "refresh" platzieren.
der button soll aber nicht die komplette breite beanspruchen. Lediglich links über dem TextArea erscheinen.
Habe gedacht ich könnte es so machen, dass ich
Code:
// initialize textarea
this.textArea = new JTextArea(10,25);
JScrollPane scrollPane = new JScrollPane(this.textArea);
scrollPane.setBorder(BorderFactory.createTitledBorder("Text area"));
JPanel footer = new JPanel();
footer.setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
footer.add(new JButton("refresh"));
footer.add(scrollPane);
getContentPane().add(footer,BorderLayout.SOUTH);
Wie kann ich das Problem am besten lösen?
Der komplette Code
Code:
package gui;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Dimension;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JToolBar;
import javax.swing.SwingUtilities;
public class Gui extends JFrame{
private static final long serialVersionUID = 1L;
private JPanel leftpanel;
CardLayout cl = new CardLayout();
JPanel panel = new JPanel(cl);
JTextArea textArea;
/**
* This is the default constructor
*/
public Gui() {
//left
leftpanel = new JPanel();
leftpanel.setPreferredSize(new Dimension(200, 150));
//create start panel
JPanel blankPanel = new JPanel();
blankPanel.add(new JLabel("Center"));
blankPanel.setBorder(BorderFactory.createTitledBorder("Data Editor"));
panel.add(blankPanel, "HOME");
// initialize gui
this.setSize(800, 600);
this.getContentPane().setLayout(new BorderLayout());
JButton addButton = new JButton(new ImageIcon("images/new.png"));
JToolBar toolbar = new JToolBar();
toolbar.add(addButton);
this.getContentPane().add(toolbar, BorderLayout.NORTH);
this.getContentPane().add(leftpanel,BorderLayout.WEST);
this.getContentPane().add(panel,BorderLayout.CENTER);
// initialize textarea
this.textArea = new JTextArea(10,25);
JScrollPane scrollPane = new JScrollPane(this.textArea);
scrollPane.setBorder(BorderFactory.createTitledBorder("NDEF Message"));
JPanel footer = new JPanel();
footer.setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
footer.add(new JButton("refresh"));
footer.add(scrollPane);
getContentPane().add(footer,BorderLayout.SOUTH);
cl.show(panel, "HOME");
}
/**
* @param args
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Gui thisClass = new Gui();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
}
}
danke für eure hilfe!
sunny