Swing Button ActionListener macht komische Sachen

geqoo

Bekanntes Mitglied
Hallo.

Wenn ich hier bei mir bei einem Button mit ActionListener klicke, ändere ich die Breite eines TextFeldes. Das klappt auch. Wenn ich jetzt aber die Beschriftung des Buttons ändere (mittels .setText()), dann ist komischerweise die Breite des Textfeldes wieder genau so, wie vorher.

Wie kann ich das Problem beheben?
TextFeld.revalidate() und/oder .repaint() bringt nichts.
 
Zuletzt bearbeitet:
ein Rateversuch:
setSize()-Angaben sind schlecht und werden von LayoutManager zu beliebigen Zeitpunkt überschrieben werden,
setPreferredSize() könnte eher helfen
 
Java:
	jButton5.setText("Disponenten");
	setTitle("Rufnummern");
	ansicht = 2;
	// Lade Seite 2
	seite2_laden();

weiter oben dann:

Java:
	private void seite2_laden() {
	// Eingabefelder anpassen
	techniker.setSize(120, 21);
	rufnummer.setBounds(132, 57, 137, 21);
	einsatzort.setBounds(269, 57, 148, 21);
	bemerkung.setBounds(417, 57, 105, 21);
}
 
ist dir aufgefallen dass du mal setSize(), mal setBounds() aufrufst?
hälst du das nicht für erklärungsbedürftig? verwendest du zufällig null-Layout?

Informationen, Informationen, man kann sie alle geheimhalten, oder mitteilen..
 
Das setSize() habe ich eigentlich nur benutzt, weil das Feld an sich ja an richtiger Stelle steht - aber setBounds wäre dann natürlich sauberer.
Abgesehen davon läuft es dadurch immer noch nicht 🙂

Was ist ein Null-Layout ???:L
 
Zuletzt bearbeitet:
ist das eine Bestätigung, dass du null-Layout mit absoluter Positionierung verwendest?
eine höchst interessante Info, weil das die Möglichkeiten für beliebiges Ändern der Größe stark einschränkt,

eine Lösungsvorschlag hat noch keiner gemacht,
ich persönlich hätte gerne noch viel mehr Code, am besten ein lauffähiges kurzes Testprogramm

Was ist ein Null-Layout ???:L
das einzige Layout, wo setBounds()-Aufrufe Sinn haben

Doing Without a Layout Manager (Absolute Positioning) (The Java™ Tutorials > Creating a GUI With JFC/Swing > Laying Out Components Within a Container)
 
Ein lauffähiges Testprogramm kann ich dir leider nicht geben. Dazu gehört noch eine Access Datenbank der Firma, die ich wohl kaum rausrücken darf ...

Hier sind mal 2 Screenshots:

http://img225.imageshack.us/img225/605/screen1tb.jpg
http://img155.imageshack.us/img155/6272/screen2te.jpg

Drückt man jetzt auf Ansicht Wechseln, sieht es so aus, wie auf dem rechten Bild (ohne .setText beim Button)

Hier steht:

Java:
GroupLayout thisLayout = new GroupLayout((JComponent)getContentPane());
			getContentPane().setLayout(thisLayout);

Wenn ich das jetzt alles auf null-Layout umbauen müsste, würde das ewig dauern (kann also von vorne anfangen).
 
Zuletzt bearbeitet:
selbst wenn du es rausrücken dürftest und würdest, hätte ich ganz gewiss keine Lust das zu lesen,
ich meinte ein Programm von 100 Zeilen, das man kopieren und direkt starken kann,
mehr als der Button und ein paar Textfelder in dem Layout, welches du eben hast, sollten da drin sein

alternativ kannst du noch versuchen, eben entsprechende Code-Teile zu posten, schlicht mehr als die bisherigen 11 Zeilen,
aber ob jemand das ohne Ausführbarkeit genauer untersucht?..
 
Nur weil es mir so scheint, als wäre es untergegangen:
Hast du wie SlaterB gesagt hat schonmal statt setSize die setPreferredSize Methode genommen (du scheinst ja ein Layout zu nutzen, auch wenn du setBounds benutzt).
 
Bitteschön 😛

Java:
package jframe;

import javax.swing.BorderFactory;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.LayoutStyle;
import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;

import javax.swing.border.LineBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.SwingUtilities;

import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.table.*;

public class NewJFrame extends javax.swing.JFrame {
	private JButton jButton1;
	private JScrollPane jScrollPane1;
	static JTable jTable1;

	private JButton jButton4;
	private JButton jButton3;
	private JTextField rufnummer;
	private JTextField einsatzort;
	private JTextField bemerkung;
	private JButton jButton2;
	private JCheckBox jCheckBox1;
	private JTextField techniker;

	private JButton jButton5;
	public static int ansicht = 1;

	public static void main(String[] args) throws Exception {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				NewJFrame inst = new NewJFrame();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public NewJFrame() {
		super();
		initGUI();
	}

	private void seite2_laden() {
		// Inhalt leeren
		DefaultTableModel dm = (DefaultTableModel)NewJFrame.jTable1.getModel();
		// dm.getDataVector().removeAllElements();
		NewJFrame.jTable1.repaint();

		// Neue Köpfe hinzufügen
		((DefaultTableModel)jTable1.getModel()).addColumn(" Firma");
		((DefaultTableModel)jTable1.getModel()).addColumn(" Rufnummer");
		((DefaultTableModel)jTable1.getModel()).addColumn(" Name");
		((DefaultTableModel)jTable1.getModel()).addColumn(" Bemerkung");

		// Alte Köpfe entfernen
		TableColumn tcol = jTable1.getColumnModel().getColumn(4);
		jTable1.removeColumn(tcol);
		tcol = jTable1.getColumnModel().getColumn(3);
		jTable1.removeColumn(tcol);
		tcol = jTable1.getColumnModel().getColumn(2);
		jTable1.removeColumn(tcol);
		tcol = jTable1.getColumnModel().getColumn(1);
		jTable1.removeColumn(tcol);

		// Neue Köpfe aufwerten
		jTable1.getColumn(" ID").setMinWidth(0);
		jTable1.getColumn(" ID").setMaxWidth(0);

		TableColumn column = null;
		column = jTable1.getColumnModel().getColumn(1);
		column.setPreferredWidth(120);
		column = jTable1.getColumnModel().getColumn(2);
		column.setPreferredWidth(137);
		column = jTable1.getColumnModel().getColumn(3);
		column.setPreferredWidth(148);
		column = jTable1.getColumnModel().getColumn(4);
		column.setPreferredWidth(105);
		jTable1.setBackground(new java.awt.Color(255,204,0));

		// Eingabefelder anpassen
		techniker.setBounds(12, 57, 120, 21);
		rufnummer.setBounds(132, 57, 137, 21);
		einsatzort.setBounds(269, 57, 148, 21);
	}

	private void initGUI() {
		try {
			GroupLayout thisLayout = new GroupLayout((JComponent)getContentPane());
			getContentPane().setLayout(thisLayout);
			getContentPane().setBackground(new java.awt.Color(255,204,0));
			this.setTitle("Techniker");
			{
				jButton1 = new JButton();
				jButton1.setText("Exit");
			}
			{
				jScrollPane1 = new JScrollPane();
				jScrollPane1.setBorder(new LineBorder(new java.awt.Color(0,0,0), 1, false));
				{
					TableModel jTable1Model = 
						new DefaultTableModel(
							new String[][] { 
							}, 
							// Tabellenkopf
							new String[] { 
									" ID", 
									" Techniker", 
									" Rufnummer", 
									" Einsatzort", 
									" Premium"
							}
						);
					jTable1 = new JTable(jTable1Model) {
						public boolean isCellEditable(int rowIndex, int vColIndex) {
							return false;
					    }
			            public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
			                Component c = super.prepareRenderer(renderer, row, column);
			                ((DefaultTableCellRenderer)renderer).setHorizontalAlignment(SwingConstants.LEFT);
			                if (column == 4) {
			                	((DefaultTableCellRenderer)renderer).setHorizontalAlignment(SwingConstants.CENTER);
			                }
			                return c;
			            }
					};
					// Nur ein Feld darf gleichzeitig anklickbar sein
					jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
					// Spalte ID ausblenden
					jTable1.getColumn(" ID").setMinWidth(0);
					jTable1.getColumn(" ID").setMaxWidth(0);

					// Linksbündiger Header
					JTableHeader header = jTable1.getTableHeader();
					header.setBackground(new java.awt.Color(212,208,200));
					((DefaultTableCellRenderer)header.getDefaultRenderer()).setHorizontalAlignment(JLabel.LEFT);

					jScrollPane1.setViewportView(jTable1);
					jTable1.setModel(jTable1Model);

					// Padding-Left: 5px
					jTable1.getColumnModel().setColumnMargin(5);

					// Nicht automatisch resizen
					jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
					// User darf nicht resizen
					jTable1.getTableHeader().setResizingAllowed(false);
					// User darf Spalte nicht verschieben
					jTable1.getTableHeader().setReorderingAllowed(false);
					// Breiten festlegen
					TableColumn column = null;
					column = jTable1.getColumnModel().getColumn(1);
					column.setPreferredWidth(150);
					column = jTable1.getColumnModel().getColumn(2);
					column.setPreferredWidth(137);
					column = jTable1.getColumnModel().getColumn(3);
					column.setPreferredWidth(148);
					column = jTable1.getColumnModel().getColumn(4);
					column.setPreferredWidth(75);
					jTable1.setBackground(new java.awt.Color(255,204,0));
				}
			}
			{
				bemerkung = new JTextField();
			}
			{
				jButton5 = new JButton();
				jButton5.setText("Rufnummern");

				jButton5.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						if (ansicht == 1) {
							jButton5.setText("Disponenten");
							setTitle("Rufnummern");
							ansicht = 2;
							// Rufnummern init
							seite2_laden();
						}
						else if (ansicht == 2) {
							jButton5.setText("Techniker");
							setTitle("Disponenten");
							ansicht = 3;
							// Disponenten Init (fehlt noch)
						}
						else if (ansicht == 3) {
							jButton5.setText("Rufnummern");
							setTitle("Techniker");
							ansicht = 1;
							// Techniker init (fehlt noch)
						}
					}
				}
				);
			}
			{
				jButton4 = new JButton();
				jButton4.setText("Clear");
			}
			{
				jButton3 = new JButton();
				jButton3.setText("New");
			}
			{
				jButton2 = new JButton();
				jButton2.setText("Details");
			}
			{
				jCheckBox1 = new JCheckBox();
				jCheckBox1.setBackground(null);
			}
			{
				einsatzort = new JTextField();
			}
			{
				rufnummer = new JTextField();
			}
			{
				techniker = new JTextField();
			}
			thisLayout.setVerticalGroup(thisLayout.createSequentialGroup()
				.addContainerGap()
				.addGroup(thisLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
				    .addComponent(jButton2, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)
				    .addComponent(jButton1, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, 23, GroupLayout.PREFERRED_SIZE)
				    .addComponent(jButton3, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)
				    .addComponent(jButton4, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)
				    .addComponent(jButton5, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)
				    .addComponent(bemerkung, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE))
				.addGap(19)
				.addGroup(thisLayout.createParallelGroup()
				    .addGroup(GroupLayout.Alignment.LEADING, thisLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
				        .addComponent(techniker, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)
				        .addComponent(rufnummer, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)
				        .addComponent(einsatzort, GroupLayout.Alignment.BASELINE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE))
				    .addComponent(jCheckBox1, GroupLayout.Alignment.LEADING, GroupLayout.PREFERRED_SIZE, 18, GroupLayout.PREFERRED_SIZE))
				.addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
				.addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 292, GroupLayout.PREFERRED_SIZE)
				.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 0, Short.MAX_VALUE));
			thisLayout.setHorizontalGroup(thisLayout.createSequentialGroup()
				.addContainerGap()
				.addGroup(thisLayout.createParallelGroup()
				    .addGroup(thisLayout.createSequentialGroup()
				        .addGroup(thisLayout.createParallelGroup()
				            .addGroup(GroupLayout.Alignment.LEADING, thisLayout.createSequentialGroup()
				                .addComponent(techniker, GroupLayout.PREFERRED_SIZE, 150, GroupLayout.PREFERRED_SIZE)
				                .addComponent(rufnummer, GroupLayout.PREFERRED_SIZE, 136, GroupLayout.PREFERRED_SIZE)
				                .addComponent(einsatzort, GroupLayout.PREFERRED_SIZE, 148, GroupLayout.PREFERRED_SIZE))
				            .addGroup(GroupLayout.Alignment.LEADING, thisLayout.createSequentialGroup()
				                .addComponent(jButton1, GroupLayout.PREFERRED_SIZE, 55, GroupLayout.PREFERRED_SIZE)
				                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
				                .addComponent(jButton2, GroupLayout.PREFERRED_SIZE, 55, GroupLayout.PREFERRED_SIZE)
				                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
				                .addComponent(jButton3, GroupLayout.PREFERRED_SIZE, 54, GroupLayout.PREFERRED_SIZE)
				                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
				                .addComponent(jButton4, GroupLayout.PREFERRED_SIZE, 45, GroupLayout.PREFERRED_SIZE)
				                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
				                .addComponent(jButton5, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)
				                .addGap(0, 106, GroupLayout.PREFERRED_SIZE)))
				        .addGroup(thisLayout.createParallelGroup()
				            .addGroup(GroupLayout.Alignment.LEADING, thisLayout.createSequentialGroup()
				                .addComponent(bemerkung, GroupLayout.PREFERRED_SIZE, 59, GroupLayout.PREFERRED_SIZE)
				                .addGap(0, 0, Short.MAX_VALUE))
				            .addGroup(GroupLayout.Alignment.LEADING, thisLayout.createSequentialGroup()
				                .addGap(29)
				                .addComponent(jCheckBox1, GroupLayout.PREFERRED_SIZE, 18, GroupLayout.PREFERRED_SIZE)
				                .addGap(12)))
				        .addGap(36))
				    .addComponent(jScrollPane1, GroupLayout.Alignment.LEADING, 0, 529, Short.MAX_VALUE))
				.addContainerGap());
			{
				final JButton jButton1 = new JButton();
			}
			pack();
			this.setSize(561, 419);

			// init_cols();
			// dbVerbindung.close();
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}

}
SQL:
 
Zuletzt bearbeitet:
bei GroupLayout muss ich persönlich wie immer passen, geht mit Java 1.5 nicht

mir ist immer ein Rätsel, wie jemand
Java:
addGroup(GroupLayout.Alignment.LEADING, thisLayout.createSequentialGroup()
                                .addComponent(jButton1, GroupLayout.PREFERRED_SIZE, 55, GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton2, GroupLayout.PREFERRED_SIZE, 55, GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton3, GroupLayout.PREFERRED_SIZE, 54, GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton4, GroupLayout.PREFERRED_SIZE, 45, GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton5, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)
                                .addGap(0, 106, GroupLayout.PREFERRED_SIZE)))
codiert statt einfach nur
Java:
panel.add(xy, NORTH);
oder ähnlich

falls automatisch von GUI-Builder erstellt:
- guter Zeitpunkt damit aufzuhören
- und solange ein sehr guter Grund, da nicht mit eigenen Breitenangaben reinzupfuschen
- die Info wäre übrigens eine der Infos, die ins erste Posting gehören
 
Ich bin leider nicht so der Java-Crack, bin also wohl darauf angewiesen.
Und ja, das stimmt - das ist vom GUI Editor (Jigloo) erstellt worden.
 
Hallo,

ich habe mal ein bißchen mit deinem Code herumgespielt:
Java:
import javax.swing.BorderFactory;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.LayoutStyle;
import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;

import javax.swing.border.LineBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.SwingUtilities;

import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.table.*;

public class NewJFrame extends javax.swing.JFrame
{
	private JButton jButton1;
	private JScrollPane jScrollPane1;
	static JTable jTable1;

	private JButton jButton4;
	private JButton jButton3;
	private JTextField rufnummer;
	private JTextField einsatzort;
	private JTextField bemerkung;
	private JButton jButton2;
	private JCheckBox jCheckBox1;
	private JTextField techniker;

	private JButton jButton5;
	public static int ansicht = 1;

	public static void main(String[] args) throws Exception
	{
		SwingUtilities.invokeLater(new Runnable()
		{
			public void run()
			{
				NewJFrame inst = new NewJFrame();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}

	public NewJFrame()
	{
		super();
		initGUI();
	}

	private void seite2_laden()
	{
		// Inhalt leeren
		DefaultTableModel dm = (DefaultTableModel) NewJFrame.jTable1.getModel();
		// dm.getDataVector().removeAllElements();
		NewJFrame.jTable1.repaint();

		// Neue Köpfe hinzufügen
		((DefaultTableModel) jTable1.getModel()).addColumn(" Firma");
		((DefaultTableModel) jTable1.getModel()).addColumn(" Rufnummer");
		((DefaultTableModel) jTable1.getModel()).addColumn(" Name");
		((DefaultTableModel) jTable1.getModel()).addColumn(" Bemerkung");

		// Alte Köpfe entfernen
		TableColumn tcol = jTable1.getColumnModel().getColumn(4);
		jTable1.removeColumn(tcol);
		tcol = jTable1.getColumnModel().getColumn(3);
		jTable1.removeColumn(tcol);
		tcol = jTable1.getColumnModel().getColumn(2);
		jTable1.removeColumn(tcol);
		tcol = jTable1.getColumnModel().getColumn(1);
		jTable1.removeColumn(tcol);

		// Neue Köpfe aufwerten
		jTable1.getColumn(" ID").setMinWidth(0);
		jTable1.getColumn(" ID").setMaxWidth(0);

		TableColumn column = null;
		column = jTable1.getColumnModel().getColumn(1);
		column.setPreferredWidth(120);
		column = jTable1.getColumnModel().getColumn(2);
		column.setPreferredWidth(137);
		column = jTable1.getColumnModel().getColumn(3);
		column.setPreferredWidth(148);
		column = jTable1.getColumnModel().getColumn(4);
		column.setPreferredWidth(105);
		jTable1.setBackground(new java.awt.Color(255, 204, 0));

		// Eingabefelder anpassen
		//techniker.setBounds(12, 57, 120, 21);
		//rufnummer.setBounds(132, 57, 137, 21);
		//einsatzort.setBounds(269, 57, 148, 21);
		
		techniker.setPreferredSize(new Dimension(120, 21));//So legt man die bevorzugte Größe einer Komponente fest
		rufnummer.setPreferredSize(new Dimension(137, 21));//So legt man die bevorzugte Größe einer Komponente fest
		einsatzort.setPreferredSize(new Dimension(148, 21));//So legt man die bevorzugte Größe einer Komponente fest
		
		/*techniker.setMinimumSize(new Dimension(120, 21));
		rufnummer.setMinimumSize(new Dimension(137, 21));
		einsatzort.setMinimumSize(new Dimension(148, 21));
		
		techniker.setMaximumSize(new Dimension(120, 21));
		rufnummer.setMaximumSize(new Dimension(137, 21));
		einsatzort.setMaximumSize(new Dimension(148, 21));*/
		
		this.pack();//Damit alle Komponent neu ausgelegt werden.
		this.repaint();//Fenster neu zeichnen lassen.
	}

	private void initGUI()
	{
		try
		{
			GroupLayout thisLayout = new GroupLayout(
					(JComponent) getContentPane());
			getContentPane().setLayout(thisLayout);
			getContentPane().setBackground(new java.awt.Color(255, 204, 0));
			this.setTitle("Techniker");
			{
				jButton1 = new JButton();
				jButton1.setText("Exit");
			}
			{
				jScrollPane1 = new JScrollPane();
				jScrollPane1.setBorder(new LineBorder(new java.awt.Color(0, 0,
						0), 1, false));
				{
					TableModel jTable1Model = new DefaultTableModel(
							new String[][]{},
							// Tabellenkopf
							new String[]{" ID", " Techniker", " Rufnummer",
									" Einsatzort", " Premium"});
					jTable1 = new JTable(jTable1Model)
					{
						public boolean isCellEditable(int rowIndex,
								int vColIndex)
						{
							return false;
						}
						public Component prepareRenderer(
								TableCellRenderer renderer, int row, int column)
						{
							Component c = super.prepareRenderer(renderer, row,
									column);
							((DefaultTableCellRenderer) renderer)
									.setHorizontalAlignment(SwingConstants.LEFT);
							if (column == 4)
							{
								((DefaultTableCellRenderer) renderer)
										.setHorizontalAlignment(SwingConstants.CENTER);
							}
							return c;
						}
					};
					// Nur ein Feld darf gleichzeitig anklickbar sein
					jTable1
							.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
					// Spalte ID ausblenden
					jTable1.getColumn(" ID").setMinWidth(0);
					jTable1.getColumn(" ID").setMaxWidth(0);

					// Linksbündiger Header
					JTableHeader header = jTable1.getTableHeader();
					header.setBackground(new java.awt.Color(212, 208, 200));
					((DefaultTableCellRenderer) header.getDefaultRenderer())
							.setHorizontalAlignment(JLabel.LEFT);

					jScrollPane1.setViewportView(jTable1);
					jTable1.setModel(jTable1Model);

					// Padding-Left: 5px
					jTable1.getColumnModel().setColumnMargin(5);

					// Nicht automatisch resizen
					jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
					// User darf nicht resizen
					jTable1.getTableHeader().setResizingAllowed(false);
					// User darf Spalte nicht verschieben
					jTable1.getTableHeader().setReorderingAllowed(false);
					// Breiten festlegen
					TableColumn column = null;
					column = jTable1.getColumnModel().getColumn(1);
					column.setPreferredWidth(150);
					column = jTable1.getColumnModel().getColumn(2);
					column.setPreferredWidth(137);
					column = jTable1.getColumnModel().getColumn(3);
					column.setPreferredWidth(148);
					column = jTable1.getColumnModel().getColumn(4);
					column.setPreferredWidth(75);
					jTable1.setBackground(new java.awt.Color(255, 204, 0));
				}
			}
			{
				bemerkung = new JTextField();
			}
			{
				jButton5 = new JButton();
				jButton5.setText("Rufnummern");

				jButton5.addActionListener(new ActionListener()
				{
					public void actionPerformed(ActionEvent e)
					{
						if (ansicht == 1)
						{
							jButton5.setText("Disponenten");
							setTitle("Rufnummern");
							ansicht = 2;
							// Rufnummern init
							seite2_laden();
						}
						else if (ansicht == 2)
						{
							jButton5.setText("Techniker");
							setTitle("Disponenten");
							ansicht = 3;
							// Disponenten Init (fehlt noch)
						}
						else if (ansicht == 3)
						{
							jButton5.setText("Rufnummern");
							setTitle("Techniker");
							ansicht = 1;
							// Techniker init (fehlt noch)
						}
					}
				});
			}
			{
				jButton4 = new JButton();
				jButton4.setText("Clear");
			}
			{
				jButton3 = new JButton();
				jButton3.setText("New");
			}
			{
				jButton2 = new JButton();
				jButton2.setText("Details");
			}
			{
				jCheckBox1 = new JCheckBox();
				jCheckBox1.setBackground(null);
			}
			{
				einsatzort = new JTextField();
				einsatzort.setPreferredSize(new Dimension(148, 21));//<-Gleich bei der Erstellung einen Startwert mitgeben.
			}
			{
				rufnummer = new JTextField();
				rufnummer.setPreferredSize(new Dimension(136, 21));//<-Gleich bei der Erstellung einen Startwert mitgeben.
			}
			{
				techniker = new JTextField();
				techniker.setPreferredSize(new Dimension(150, 21));//<-Gleich bei der Erstellung einen Startwert mitgeben.
			}
			thisLayout
					.setVerticalGroup(thisLayout
							.createSequentialGroup()
							.addContainerGap()
							.addGroup(
									thisLayout
											.createParallelGroup(
													GroupLayout.Alignment.BASELINE)
											.addComponent(
													jButton2,
													GroupLayout.Alignment.BASELINE,
													GroupLayout.PREFERRED_SIZE,
													GroupLayout.PREFERRED_SIZE,
													GroupLayout.PREFERRED_SIZE)
											.addComponent(
													jButton1,
													GroupLayout.Alignment.BASELINE,
													GroupLayout.PREFERRED_SIZE,
													23,
													GroupLayout.PREFERRED_SIZE)
											.addComponent(
													jButton3,
													GroupLayout.Alignment.BASELINE,
													GroupLayout.PREFERRED_SIZE,
													GroupLayout.PREFERRED_SIZE,
													GroupLayout.PREFERRED_SIZE)
											.addComponent(
													jButton4,
													GroupLayout.Alignment.BASELINE,
													GroupLayout.PREFERRED_SIZE,
													GroupLayout.PREFERRED_SIZE,
													GroupLayout.PREFERRED_SIZE)
											.addComponent(
													jButton5,
													GroupLayout.Alignment.BASELINE,
													GroupLayout.PREFERRED_SIZE,
													GroupLayout.PREFERRED_SIZE,
													GroupLayout.PREFERRED_SIZE)
											.addComponent(
													bemerkung,
													GroupLayout.Alignment.BASELINE,
													GroupLayout.PREFERRED_SIZE,
													GroupLayout.PREFERRED_SIZE,
													GroupLayout.PREFERRED_SIZE))
							.addGap(19)
							.addGroup(
									thisLayout
											.createParallelGroup()
											.addGroup(
													GroupLayout.Alignment.LEADING,
													thisLayout
															.createParallelGroup(
																	GroupLayout.Alignment.BASELINE)
															.addComponent(
																	techniker,
																	GroupLayout.Alignment.BASELINE,
																	GroupLayout.PREFERRED_SIZE,
																	GroupLayout.PREFERRED_SIZE,
																	GroupLayout.PREFERRED_SIZE)
															.addComponent(
																	rufnummer,
																	GroupLayout.Alignment.BASELINE,
																	GroupLayout.PREFERRED_SIZE,
																	GroupLayout.PREFERRED_SIZE,
																	GroupLayout.PREFERRED_SIZE)
															.addComponent(
																	einsatzort,
																	GroupLayout.Alignment.BASELINE,
																	GroupLayout.PREFERRED_SIZE,
																	GroupLayout.PREFERRED_SIZE,
																	GroupLayout.PREFERRED_SIZE))
											.addComponent(
													jCheckBox1,
													GroupLayout.Alignment.LEADING,
													GroupLayout.PREFERRED_SIZE,
													18,
													GroupLayout.PREFERRED_SIZE))
							.addPreferredGap(
									LayoutStyle.ComponentPlacement.UNRELATED)
							.addComponent(jScrollPane1,
									GroupLayout.PREFERRED_SIZE, 292,
									GroupLayout.PREFERRED_SIZE)
							.addPreferredGap(
									LayoutStyle.ComponentPlacement.RELATED, 0,
									Short.MAX_VALUE));
			thisLayout
					.setHorizontalGroup(thisLayout
							.createSequentialGroup()
							.addContainerGap()
							.addGroup(
									thisLayout
											.createParallelGroup()
											.addGroup(
													thisLayout
															.createSequentialGroup()
															.addGroup(
																	thisLayout
																			.createParallelGroup()
																			.addGroup(
																					GroupLayout.Alignment.LEADING,
																					thisLayout
																							.createSequentialGroup()
																							.addComponent(
																									techniker,
																									GroupLayout.PREFERRED_SIZE,
																									GroupLayout.PREFERRED_SIZE,//150, auf Preferred_Size umstellen
																									GroupLayout.PREFERRED_SIZE)
																							.addComponent(
																									rufnummer,
																									GroupLayout.PREFERRED_SIZE,
																									GroupLayout.PREFERRED_SIZE,//136, auf Preferred_Size umstellen
																									GroupLayout.PREFERRED_SIZE)
																							.addComponent(
																									einsatzort,
																									GroupLayout.PREFERRED_SIZE,
																									GroupLayout.PREFERRED_SIZE,//148, auf Preferred_Size umstellen
																									GroupLayout.PREFERRED_SIZE))
																			.addGroup(
																					GroupLayout.Alignment.LEADING,
																					thisLayout
																							.createSequentialGroup()
																							.addComponent(
																									jButton1,
																									GroupLayout.PREFERRED_SIZE,
																									55,
																									GroupLayout.PREFERRED_SIZE)
																							.addPreferredGap(
																									LayoutStyle.ComponentPlacement.UNRELATED)
																							.addComponent(
																									jButton2,
																									GroupLayout.PREFERRED_SIZE,
																									55,
																									GroupLayout.PREFERRED_SIZE)
																							.addPreferredGap(
																									LayoutStyle.ComponentPlacement.UNRELATED)
																							.addComponent(
																									jButton3,
																									GroupLayout.PREFERRED_SIZE,
																									54,
																									GroupLayout.PREFERRED_SIZE)
																							.addPreferredGap(
																									LayoutStyle.ComponentPlacement.UNRELATED)
																							.addComponent(
																									jButton4,
																									GroupLayout.PREFERRED_SIZE,
																									45,
																									GroupLayout.PREFERRED_SIZE)
																							.addPreferredGap(
																									LayoutStyle.ComponentPlacement.UNRELATED)
																							.addComponent(
																									jButton5,
																									GroupLayout.PREFERRED_SIZE,
																									GroupLayout.PREFERRED_SIZE,
																									GroupLayout.PREFERRED_SIZE)
																							.addGap(
																									0,
																									106,
																									GroupLayout.PREFERRED_SIZE)))
															.addGroup(
																	thisLayout
																			.createParallelGroup()
																			.addGroup(
																					GroupLayout.Alignment.LEADING,
																					thisLayout
																							.createSequentialGroup()
																							.addComponent(
																									bemerkung,
																									GroupLayout.PREFERRED_SIZE,
																									59,
																									GroupLayout.PREFERRED_SIZE)
																							.addGap(
																									0,
																									0,
																									Short.MAX_VALUE))
																			.addGroup(
																					GroupLayout.Alignment.LEADING,
																					thisLayout
																							.createSequentialGroup()
																							.addGap(
																									29)
																							.addComponent(
																									jCheckBox1,
																									GroupLayout.PREFERRED_SIZE,
																									18,
																									GroupLayout.PREFERRED_SIZE)
																							.addGap(
																									12)))
															.addGap(36))
											.addComponent(
													jScrollPane1,
													GroupLayout.Alignment.LEADING,
													0, 529, Short.MAX_VALUE))
							.addContainerGap());
			{
				final JButton jButton1 = new JButton();
			}
			pack();
			this.setSize(561, 419);

			// init_cols();
			// dbVerbindung.close();
		}
		catch (Exception e)
		{
			// add your error handling code here
			e.printStackTrace();
		}
	}

}

Ich befürchte aber, daß dir das nicht viel bringen wird.

SlaterB hat gesagt.:
falls automatisch von GUI-Builder erstellt:
- guter Zeitpunkt damit aufzuhören
- und solange ein sehr guter Grund, da nicht mit eigenen Breitenangaben reinzupfuschen
- die Info wäre übrigens eine der Infos, die ins erste Posting gehören
SlaterB hat da völlig Recht.
In einem von einem GUI-Builder generierten Code herumzupfuschen ist meistens nicht besonderst schlau. Du solltest dich schleunigst mit den verschiedenen Layout-Managern anfreunden.

MfG
hansmueller
 
nur am Rande: das war nicht mein Ziel und sollte normalerweise verhindert werden
(etwa schlecht bei verschiedenen Auflösungen, Schriftgrößen usw.),
ist am Anfang aber durchaus eine einfache Variante
 

Neue Themen


Zurück
Oben