質問: new JLabel(); jl.setText(str); //文字設定 jl.setBounds(x, y, w, h); //位置・範囲設定 jl.setForeground(strColor); //文字色設定 jl.setBackground(backColor); //範囲背景設定 jl.setOpaque(opaque); //不透明化設定 jl.setFont(new Font(Font.MONOSPACED, Font.BOLD, fontSize)); //フォント設定 jl.setPreferredSize(new Dimension(FrameW,FrameH)); //枠領域設定 jl.setBorder(new LineBorder(FrameColor, FrameSize, true)); //枠色・大きさ・角設定 jl.setHorizontalAlignment(JLabel.CENTER); //枠内水平位置設定 jl.setVerticalAlignment(JLabel.CENTER); //枠内垂直位置設定 return jl; } } ``` 上のプログラムですが はじめベースパネルにオープニングパネルが貼り付けられていて、 スペースキーを押すとオープニングパネルが取り除かれバックグランドパネルがベースパネルに貼り付けられるようになっています。 実行してスペースキーを押すと”スペース押された”はコンソールに表示されるのですが、パネルがオープニングパネルのままでバックグランドパネルが表示されなかったのですが、表示の枠?アプレットの枠?をいじるとバックグランドパネルが表示されました。 一応はちゃんと動いてるみたいなのですが、いちいち枠をいじらないとちゃんと表示されないのはなぜなのでしょうか? よろしくお願いします。
回答: 「public void processKeyEvent(KeyEvent ke)」のif文の最後に「repaint();」を追加してみてください。