私はしばらくの間この問題を抱えており、多くのフォーラムやサイト (これを含む) を検索しましたが、それでも私の質問に対する答えは見つかりませんでした.
これは私の問題です。視覚的なカレンダーを作成しています。複数のパネルを含む親パネルがあります。親パネルを再描画し、3 つのオーバーレイを不透明 (false) にします。フレームのサイズを変更するまで、親パネルのペイントは表示されません(または、3 つのうちの 1 つをオーバーレイするボタンを使用しますが、コードが長くなるため、この例では省略されています)。
とにかく、これがコードです。問題の部分に単純化しました。
public class Calendar extends JPanel{
public static void main(String[] args){
JFrame frame = new JFrame();
frame.setSize(1600,150);
frame.add(new Calendar());
frame.setVisible(true);
}
public Calendar(){
setLayout(new GridBagLayout());
GridBagConstraints cc = new GridBagConstraints();
cc.weightx = 1;
cc.weighty = 1;
cc.gridx = 0;
cc.fill = GridBagConstraints.BOTH;
//Initiate Panels
JPanel yearpanel = new JPanel();
JPanel monthpanel = new JPanel();
JPanel daypanel = new JPanel();
yearpanel.setLayout(new GridBagLayout());
monthpanel.setLayout(new GridBagLayout());
daypanel.setLayout(new GridBagLayout());
// Set sizes
int width = (int) this.getPreferredSize().getWidth();
int height = (int) (this.getPreferredSize().getHeight() / 3);
yearpanel.setSize(width,height);
daypanel.setSize(width,height);
monthpanel.setSize(width,height);
//make transparent
yearpanel.setOpaque(false);
monthpanel.setOpaque(false);
daypanel.setOpaque(false);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Image image = Toolkit.getDefaultToolkit().getImage("Images/CalendarBackground.jpg");
g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), null);
}
}
なぜそれが行われるのかわかりません+オンラインで回答を見つけることができませんでした.同じ問題を抱えている人だけが質問を放棄しました:/
誰でも私を助けることができますか?