Alignment Problem

chrismass

Mitglied
Hallo!

Ich habe folgendes Problem:
Ich habe ein JPanel, worauf eine JTable platziert wird. Die Tabelle wird aus den Inhalten einer XML Datei generiert.
Um eine Überschrift zu platzieren habe ich ein JLabel gesetzt.
Nun möchte ich,
1.) dass das JLabel die gleiche Breite hat wie die Tabelle
2.) dass das JLabel links ausgerichtet ist.

Ich habs schon mit setAlignmentX() versucht. Hat aber keine Auswirkungen auf das JLabel. Liegt es am Layout? Ich benutze hier das Box Modell.
Wenn ich ein Gridlayout verwende, ist die Überschrift zwar links ausgerichtet, aber ja nur weil das JLabel den kompletten Raum der ersten Zelle füllt.

hier noch was vom code ...

Code:
public class ProjectExplorer {
	
	Color edOrangeColor = new Color(255,204,0);
	Color edRowColor = new Color(250,205,75);

	private static final long serialVersionUID = 1L;
	private JTable edProjectTable = null;
	private XmlReader myxml = null;
	private JPanel edProjectPanel = null; 
	private JLabel tableTitle = null;
	public Boolean active = true;
	
	public ProjectExplorer() {
	}
	private XmlReader getMyxml() {
		if (myxml == null) {
			myxml = new XmlReader();
			myxml.openXMLAsDoc("xmldata/projectsdata.xml");
		}
		return myxml;
	}
	private JTable getEdProjectTable() {
		if (edProjectTable == null) {
			edProjectTable = new JTable(getMyxml().getXMLAsProjectListing(),
					I18n.projectExplorerColumnNames);
			edProjectTable.setSelectionBackground(edRowColor);
		}
		return edProjectTable;
	}
	public JPanel getEdProjectPanel() {
		if (edProjectPanel == null) {
			tableTitle = new JLabel("Verfügbare Projekte:");
			tableTitle.setBackground(edOrangeColor);
			tableTitle.setOpaque(true);
			tableTitle.setBorder(BorderFactory.createLineBorder(Color.red, 1));
			//tableTitle.setHorizontalAlignment(SwingConstants.LEADING);
			edProjectPanel = new JPanel();
			//edProjectPanel.setLayout(new GridLayout(2,1));
			//tableTitle.setAlignmentY(javax.swing.JLabel.CENTER_ALIGNMENT);
			edProjectPanel.setLayout(new BoxLayout(edProjectPanel,BoxLayout.Y_AXIS));
			edProjectPanel.setBorder(BorderFactory.createLineBorder(Color.black, 2));
			edProjectPanel.add(tableTitle);
			edProjectPanel.add(getEdProjectTable(), null);
		}
		return edProjectPanel;
	}
}
 
Zurück