私のプログラムのJFrameについて作成しています。私はプログラムのために使用したアイコンを持っていて、JFrameについての最初のものとしてそれを表示していますが、イメージを中央に置くことに問題があります。私が何らかのセンタリングをすると、他のすべてのアライメント全体がねじ止めされます。イメージをJFrameにセンタリングするには?
アイコン以外のすべてのJLabelを整列させようとしています。次に、アイコンを中心に合わせます。
私はいくつかの個人情報を削除する必要がありましたが、削除したものは「[]」の間に入れました。
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);
}
}
あなたはアイコンをバックグラウンドでセンタリングされるようにしたいですか?またはそのまわりのテキストの中央に配置されていますか? – Soronthar
どちらもありません。私はイメージを持っていて、カップルのラベルを重ねて重ねてイメージを中心にしたいと思っていました。 – samwell