ここに私のコードがあります。 "白"を使用してパネルの背景を設定すると、 "写真" JLabelのアイコンの色が非常に明るくなるという問題があります。 代わりに「黒」を使用すると、写真JLabelの色が表示されます。 pic JLabelでどの色を使用しても問題ありません。パネルが白に設定されると、それらはすべて明るくなります。panel setBackgroundがJLabelsの色を乱している
JLabelの色に影響を与えずにパネルの背景色を設定する方法はありますか?
Color black = new Color(20, 20, 20, 255);
Color white = new Color(255, 255, 255, 255);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1200, 500);
frame.setVisible(true);
frame.getRootPane().setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, Color.BLACK));
frame.setLocationRelativeTo(null);
frame.setResizable(false);
JPanel panel= new JPanel();
frame.getContentPane().add(panel);
panel.setLayout(null);
panel.getAccessibleContext().setAccessibleName("panel");
panel.getAccessibleContext().setAccessibleDescription(" ");
// this is the line that causes problem
panel.setBackground(black);
JLabel pic = new JLabel(new ImageIcon(showBaseImage()));
panel.add(pic);
pic.setSize(1200, 500);
pic.setLocation(1, 1);
pic.setBackground(black);
public BufferedImage showBaseImage(){
BufferedImage c = new BufferedImage(1200, 500, BufferedImage.TYPE_INT_ARGB);
Graphics2D gg= c.createGraphics();
gg.setPaint(new Color(125, 0, 125, 255 ));
gg.fillRect(0,0, c.getWidth(), c.getHeight());
gg.setPaint(new Color(255, 255, 225, 255 ));
imgFont = new Font("Arial", Font.BOLD, 45);
gg.setFont(imgFont);
gg.drawString("Write something", 20, 20);
gg.dispose();
return c;
}
あなたは天才です!ありがとうございます –
それはあまりにも多くの:)それはスイングとの共通のトリックです。 応答があなたの問題に対処するなら、それを受け入れると思います:) – davidxxx