G
Gelöschtes Mitglied 12486
Gast
Hallo,
ich habe ein JPanel auf dem ich mehrere Labels untereinander anzeigen lassen will. Dies habe ich über ein BoxLayout gelöst. Hier mal ein kleiner Beispielcode als Applet, damit ihr seht was mein Problem ist:
Wie das ganze aussieht, kann man im angehängten Bild IST.jpg sehen.
Also ich möchte, dass die die JLabels mit Dateiname und Dateigröße links ausgerichtet sind und die JLabels für die Werte, also der Name und die Größe, sollen mittig ausgerichtet werden. Das funktioniert auch gut, jedoch ist die imaginäre Achse, an denen diese nun ausgerichtet werden, leider nicht dort, wo ich sie gern hätte.
Ich hätte es gern so, wie auf dem angehängten Bild SOLL.jpg, jedoch weiss ich nicht, wie ich diese Achse so verschieben kann das es passt. Kann mir da jemand helfen?
edit: links = IST, rechts = SOLL
ich habe ein JPanel auf dem ich mehrere Labels untereinander anzeigen lassen will. Dies habe ich über ein BoxLayout gelöst. Hier mal ein kleiner Beispielcode als Applet, damit ihr seht was mein Problem ist:
Code:
package jdomtest;
import java.awt.Color;
import java.util.Vector;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JApplet;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
*
* @author huetz
*/
public class PanelTest extends JApplet{
private Vector<JComponent> components = new Vector<JComponent>();
private JLabel fileNameTitle, fileNameLabel, fileLengthTitle, fileLengthLabel;
private boolean debugLabels = true;
private JPanel myPanel;
public void init(){
this.setLayout(null);
this.setSize(200,200);
myPanel = new JPanel();
myPanel.setLayout(new BoxLayout(myPanel, BoxLayout.Y_AXIS));
myPanel.setBounds(0, 0, 200, 200);
components.add(myPanel);
fileNameTitle = new JLabel("Dateiname:");
fileNameTitle.setAlignmentX(RIGHT_ALIGNMENT);
myPanel.add(fileNameTitle);
components.add(fileNameTitle);
fileNameLabel = new JLabel("test.xml");
fileNameLabel.setAlignmentX(CENTER_ALIGNMENT);
myPanel.add(fileNameLabel);
components.add(fileNameLabel);
fileLengthTitle = new JLabel("Dateigröße:");
fileLengthTitle.setAlignmentX(RIGHT_ALIGNMENT);
myPanel.add(fileLengthTitle);
components.add(fileLengthTitle);
fileLengthLabel = new JLabel(setFileLength(500));
fileLengthLabel.setAlignmentX(CENTER_ALIGNMENT);
myPanel.add(fileLengthLabel);
components.add(fileLengthLabel);
if(debugLabels)
for(int i=0;i<components.size();i++){
components.get(i).setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createLineBorder(Color.red),
components.get(i).getBorder()));
}
this.add(myPanel);
}
public void setFileName(String name){
fileNameLabel.setText(name);
}
public String setFileLength(long bytes){
return ""+bytes+" Bytes";
}
}
Also ich möchte, dass die die JLabels mit Dateiname und Dateigröße links ausgerichtet sind und die JLabels für die Werte, also der Name und die Größe, sollen mittig ausgerichtet werden. Das funktioniert auch gut, jedoch ist die imaginäre Achse, an denen diese nun ausgerichtet werden, leider nicht dort, wo ich sie gern hätte.
Ich hätte es gern so, wie auf dem angehängten Bild SOLL.jpg, jedoch weiss ich nicht, wie ich diese Achse so verschieben kann das es passt. Kann mir da jemand helfen?
edit: links = IST, rechts = SOLL
Anhänge
Zuletzt bearbeitet von einem Moderator: