JPanel上に配置された背景画像の上に、作成したコンボボックスを配置できないかと思っていました。私はこれをやろうとしていますが、背景画像がコンボボックスと重なっていると思うので表示されません。JPanel 上にコンボ ボックスを配置し、ボックス レイアウトを使用して背景画像を配置するきれいな方法は誰でも知っています。
質問する
330 次
2 に答える
1
別のアプローチ、そしておそらくもっと使用されている方法では、画像をオーバーライドしてs オブジェクトJPanel
paintComponent
に直接描画します。Graphic
JFrame frame=...;
final BufferedImage bg=ImageIO.read(new URL("http://cs.anu.edu.au/student/comp6700/icons/DukeWithHelmet.png"));
JPanel p=new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d=(Graphics2D)g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
g2d.drawImage(bg,0,0,null);
}
@Override
public Dimension getPreferredSize() {//so our JPanel will fit the image entirely
return new Dimension(bg.getWidth(),bg.getHeight());
}
};
frame.add(p);
frame.pack();
frame.setVisible(true);
于 2013-01-09T22:13:21.830 に答える
1
setComponentZOrder() メソッドを使用する必要があると思います。
以下に例を示します: http://weblogs.java.net/blog/2009/01/21/swing-internals-paint-order
(詳細については JavaDoc を確認してください: setComponentZOrder() メソッド
于 2013-01-09T21:02:03.447 に答える