Swing und GridBagLayout

Hallo zusammen

Ich versuche ein kleines Depotverwaltungsprogramm mittels GridBagLaout zu schreiben. Leider scheitere ich seit Stunden daran, einen Button mit Action Listener einzufügen. Der Button sollte am unteren Rand des Layouts erscheinen. Mir zerreisst es jedoch immer das ganze Layout wenn ich den Button einfüge. Vielleicht könnt ihr mir auch einen Tipp geben wie ich in diesem Layout neben dem Button auch den ActionListener für den Button realisiere?

Thanks für Hilfe und Tipps.

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

import Depot.Buttons;

public class GridBagLayoutDemo_2 extends JPanel
{

public GridBagLayoutDemo_2()
{
setLayout(new GridBagLayout());

GridBagConstraints c = new GridBagConstraints();
c.gridx = 0; c.gridy = 0;
c.gridwidth = 2;
c.insets = new Insets(0,0,0,0); // Abstand nach links
c.anchor = GridBagConstraints.CENTER;
add(new JLabel („Neues Depot eröffnen“),c);

c.gridx = 0; c.gridy = 1;
c.gridwidth = 2;
c.insets = new Insets(0,0,0,0); // Abstand nach links
c.anchor = GridBagConstraints.WEST;
add(new JLabel(„Depotnummer“),c);

c = new GridBagConstraints();
c.gridx = 1; c.gridy = 1;
c.insets = new Insets(0,36,0,0); // Abstand nach links
c.gridwidth = 2;
add(new JTextField(20),c);

c = new GridBagConstraints();
c.gridx = 0; c.gridy = 2;
c.gridwidth = 2;
c.insets = new Insets(0,0,0,0); // Abstand nach links
c.anchor = GridBagConstraints.WEST;
add(new JLabel(„Bankname“),c);

c = new GridBagConstraints();
c.gridx = 1; c.gridy = 2;
c.insets = new Insets(0,36,0,0); // Abstand nach links
c.gridwidth = 2;
add(new JTextField(20),c);

c = new GridBagConstraints();
c.gridx = 0; c.gridy = 3;
c.gridwidth = 2;
c.insets = new Insets(0,0,0,0); // Abstand nach links
c.anchor = GridBagConstraints.WEST;
add(new JLabel(„Startgeld“),c);

c = new GridBagConstraints();
c.gridx = 1; c.gridy = 3;
c.insets = new Insets(0,36,0,0); // Abstand nach links
c.gridwidth = 2;
add(new JTextField(20),c);

c = new GridBagConstraints();
c.gridx = 0; c.gridy = 4;
c.insets = new Insets(0,0,0,0); // Abstand nach links
c.anchor = GridBagConstraints.WEST;
add(new JLabel(„Spesen“),c);

DefaultTableModel model = new DefaultTableModel();
JTable table = new JTable(model);
table.setFont(table.getFont().deriveFont(10f));
table.getTableHeader().setFont(table.getTableHeader().getFont().deriveFont(14f));

// Spaltenüberschriften der Tabelle
model.addColumn(„Betrag von“);
model.addColumn(„Betrag bis“);
model.addColumn(„Spesen EUR“);

for (int i=0;i

Hi,
zunächst eine kleine Bitte, dein Code ist besser lesbar mit dem pre-Tag.
Zu deinem Programm, ich kann dir zunächst dazu raten das du dir die imports für jedes Control ersparst, es reicht wenn du import java.swing.*; schreibst.
Für dein Layoutproblem wie siehts denn bei dir mit einem grafischen Editor/Designer aus? Der in NetBeans funktioniert ganz gut.

ActionListener al = new ActionListener() 
{ 
 public void actionPerformed( ActionEvent e ) 
 {
 button1.setIcon( icon2 ); 
 } 
}; 
button1.addActionListener( new ActionListener() 
{ 
 public void actionPerformed( ActionEvent e ) 
 { 
 System.exit( 0 ); 
 } 
} );

So kannst du einen ActionListener erstellen.
Lg der einzigware

Layout-Editor - Okay, nicht jedermanns Sache.
Ein Listener jeder Art (in Swing) hat nichts mit dem Layout zu tun. Da das GridBagLayout anfänglich nicht leicht zu verstehen ist, empfehle ich zusätzlich der Übersicht halber die Funktion (Listing 16.24) aus „Java ist auch eine Insel“:
http://openbook.galileodesign.de/javainsel8/javainse…

gutes Gelingen
michi