Ich erstelle ein über JFrame für mein Programm. Ich habe ein Icon, das ich für das Programm verwendet habe und das habe ich als erstes über JFrame entdeckt, aber ich habe Probleme, das Bild zu zentrieren. Wenn ich irgendeine Art von Zentrierung mache, vermasselt es die gesamte Ausrichtung von allem anderen.Bild in einem JFrame zentrieren?
Ich versuche, alle JLabels, außer dem Symbol, links ausgerichtet zu haben. Dann muss das Symbol auf die Mitte ausgerichtet sein.
Ich musste einige persönliche Informationen entfernen, was auch immer ich entfernte, ich legte sie zwischen "[]".
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class About extends JFrame {
public About() {
super("About [PROGRAM]");
setIconImage([PROGRAM].getInstance().setIcon());
JPanel main = new JPanel();
main.setLayout(new BoxLayout(main, BoxLayout.Y_AXIS));
main.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
JLabel icon = new JLabel("", new ImageIcon(getClass().getResource(Constants.ICON_FULL)), JLabel.CENTER);
JLabel name = new JLabel("[PROGRAM]");
JLabel expandedName = new JLabel("[PROGRAM DESCRIPTION]");
JLabel copyright = new JLabel("[COPYRIGHT JUNK]");
JLabel credits = new JLabel("[CREDITS]");
name.setFont(new Font(name.getFont().getFamily(), Font.BOLD, 18));
copyright.setBorder(BorderFactory.createEmptyBorder(0,0,10,0));
main.add(icon);
main.add(Box.createRigidArea(new Dimension(0, 10)));
main.add(name);
main.add(expandedName);
main.add(copyright);
main.add(credits);
add(main);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
}
wollen Sie das Symbol in den Hintergrund zentriert werden? oder nur mit dem Text zentriert? – Soronthar
Weder. Ich wollte ein Bild und paar Etiketten übereinander gestapelt haben, aber das Bild zentriert haben. – samwell