激しいゲームをコーディングしていて、重要な質問があります。revalidate()
このゲームでは、メソッドとメソッドを検索して見つけたおかげで、あるメソッドを削除して別のrepaint()
メソッドをその場所に配置することに成功しました。JPanel
JPanel
しかし...ここから問題が始まります。私はこれを行うことができますが、変更が必要な JPanel が複数あります (9 から 729 の範囲である可能性があります)。私はこれを JFrame で問題なく行うことができます...しかし、私が現在直面している問題は、1 つの JPanel が適切に置き換えられても、次の JPanel を行うと適切に置き換えられることです。ただし、複数のテストの結果、JFrame をドラッグして画面に戻したり、その他の変更を行ったりして JFrame を更新すると、古い変更された JPanels が消えることがわかりました。
JFrameがリフレッシュされた場合にのみ消えるのではなく、新しく追加されたJPanelを永久にそこに置く方法はありますか??
コードは次のとおりです。
int a = f%27;
int b = g%27;
int c = a%9;
int d = b%9;
winningletter.setFont(new Font("Times New Roman", Font.BOLD, 17));
miniwin.add(winningletter);
((JPanel)((JPanel)newDossier.Board.metametametaboard[f/27][g/27].getComponent((a/9)*3+b/9)).getComponent((c/3)*3+d/3)).removeAll();
((JPanel)((JPanel)newDossier.Board.metametametaboard[f/27][g/27].getComponent((a/9)*3+b/9)).getComponent((c/3)*3+d/3)).setLayout(new GridLayout(1,1));
((JPanel)((JPanel)newDossier.Board.metametametaboard[f/27][g/27].getComponent((a/9)*3+b/9)).getComponent((c/3)*3+d/3)).add(miniwin);
((JPanel)((JPanel)newDossier.Board.metametametaboard[f/27][g/27].getComponent((a/9)*3+b/9)).getComponent((c/3)*3+d/3)).repaint();
metametametaminiminiwincheck[f/3][g/3]=winningletter.getText();
boardChanger(f, g, 4);
WinChecker(s, f,g,3,4,metametametaminiminiwincheck,x);