私が作ったプログラム選択ツールがあります。17個のボタンでJFrameを開き、そのうち15個はカスタマイズ可能で、C:ドライブにある.txtドキュメントからテキストを取得します。割り当てボタンをクリックすると、JFileChooserが開き、ボタンをクリックしたときに開くファイルを選択します。次に、変更するボタンを選択し、ボタンで表示するテキストを入力します。その後、プログラムは.txtファイルを書き換え、ボタンを更新します。更新するためのコードは次のとおりです。
public static void restart() {
start.assignButtonActions();
start.assignButtonText();
start.paint(graphics);
}
public void assignButtonActions() {
/**
* assign button actions
*/
for (int i = 0; i < buttonAction.length; i++) {
buttonAction[i] = io.readSpecificFromHD("C:\\ButtonActions.txt", i
+ 1 + actionButton.length);
}
}
public void assignButtonText() {
for (int i = 0; i < actionButton.length; i++) {
/**
* set button text
*/
actionButton[i].setText(io.readSpecificFromHD(
"C:\\ButtonActions.txt", i + 1));
}
}
public void paint(Graphics g) {
g.drawImage(getImage("files/background.png"), 0, 0, FRAMEWIDTH,
FRAMEHEIGHT, null);
refresh();
}
public void refresh() {
graphics.drawImage(getImage("files/background.png"), 0, 0, FRAMEWIDTH,
FRAMEHEIGHT, null);
for (int i = 0; i < actionButton.length; i++) {
actionButton[i].repaint();
}
assignButton.repaint();
helpButton.repaint();
}
これが、私が信じるこの質問に必要なすべてのコードです。問題は、メソッドrestart()
が呼び出された後、背景がそこにあり、ボタンの周りに白い四角があり、四角の内側が白であるということです。それほど大きな問題ではありませんが、本当に信じられないほど迷惑で、かなり専門的ではありません。最初は、背景がペイントされた後にボタンのサイズが変更されていると思ったので、呼び出されるたびに更新が2回実行されるようにしました。1ビット助けませんでした。
編集:私は問題を修正しました。私はホバークラフトの答えを受け取り、学んだことを少し修正しました。私がしなければならなかったのは、restart()
メソッドを次のように変更することだけでした。
public static void restart() {
start.assignButtonActions();
start.assignButtonText();
start.repaint();
}
repaint();
ホバークラフトが言ったことだったコンポーネント全体を塗り直したからです。みなさん、ありがとうございました!これが将来の質問に役立つことを願っています。