それは簡単な質問です。おそらく、私が読んでいるチュートリアルを理解していないだけです。しかし、私はしばらくこれにこだわっています。私のプログラムは、"hello world" 以外はとてもシンプルです。私がやろうとしているのはこれです: ユーザーがボタンをクリックすると、「O」が右に移動します。簡単ですが、repaint() をどこに置くのでしょうか? 何かを追加する必要がありますか.repaint(); 画面を再描画するか、それとも単独で?ネストされたクラスの問題?T_Tこれは私を惨めにしています。私が理解できないこの問題を誰も抱えていないようです. 前もって感謝します。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GuiTest {
static int x = 20;
private static class moveTest extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString("O", x, 30);
}
}
private static class ButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
x += 1;
}
}
public static void main(String[] args) {
moveTest displayPanel = new moveTest();
JButton okButton = new JButton("move");
ButtonHandler listener = new ButtonHandler();
okButton.addActionListener(listener);
JPanel content = new JPanel();
content.setLayout(new BorderLayout());
content.add(displayPanel, BorderLayout.CENTER);
content.add(okButton, BorderLayout.SOUTH);
JFrame window = new JFrame("GUI Test");
window.setContentPane(content);
window.setSize(250, 100);
window.setLocation(100, 100);
window.setVisible(true);
}
}