Sto creando un JFrame sul mio programma. Ho un'icona che ho usato per il programma e che ho come prima cosa su JFrame, ma sto riscontrando problemi nel centrare l'immagine. Se faccio un qualche tipo di centraggio, esso rovina l'intero allineamento di tutto il resto.Centrare l'immagine in una JFrame?
Sto provando ad avere tutti i JLabel, a parte l'icona, da allineare a sinistra. Quindi avere l'icona allineata al centro.
Ho dovuto rimuovere alcune informazioni personali, qualunque cosa abbia rimosso, le ho inserite tra "[]".
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);
}
}
si desidera l'icona per essere centrato sullo sfondo? o semplicemente centrato con il testo che lo circonda? – Soronthar
Né. Volevo avere un'immagine e accoppiare etichette sovrapposte, ma centrare l'immagine. – samwell