私はクラスを書きました。私はこの質問のためにこのDrawCardを呼び出して、デッキクラスにランダムに描画されたトランプカードを表示します。私はトランプカード、スーツ、値、色などに関連する情報を含むグラフィックスオブジェクトを作成しました。メインメソッドでオブジェクトを初期化し、JFrameに追加すると、すべて100%正しく表示され描画されます。次に、アクションリスナーが新しいDrawCardオブジェクトを作成し、最初のフレームをフレームから削除し、新しいフレームをフレームに追加するボタンが付いたツールバーを追加しました。プログラムはコンパイルされて正常に動作しますが、ボタンをクリックするとフレームに新しいカードが描画されません。最初のものは削除されますが、再描画メソッドを呼び出した場合でも、新しいフレームはフレームに追加されません。ここでJava Graphicsオブジェクトが更新されていませんか?
は私が私のメインメソッドを持っているコードです:
JFrame frame = new JFrame("Paying Card");
JButton button = new JButton("Button 1");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
int width = 330;
int height = 500;
frame.setSize(width, height);
DrawPlayingCard drawCard = new DrawPlayingCard(1, 1,width,height,1, frame);
JToolBar toolBar = new JToolBar("This Tool Bar Does Nothing.");
toolBar.add(button);
toolBar.addSeparator();
Container contentPane = frame.getContentPane();
contentPane.add(toolBar, BorderLayout.NORTH);
frame.add(drawCard);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
//Execute when button is pressed
frame.remove(drawCard);
frame.repaint();
//method signature:
//public DrawPlayingCard(int x, int y, int width, int height, int arcSize, JFrame frame);
DrawPlayingCard drawCard2 = new DrawPlayingCard(1, 1, width, height, 1, frame);
System.out.println("Card drawn");
frame.add(drawCard2);
}
});
frame.setLocationRelativeTo(null);
frame.setVisible(true);
私はmainメソッドの周りと運と私のActionListener内のいくつかの異なる場所に私のJFrameにrepaintメソッドを呼び出して試してみました。私はまた、別の注文で私のオブジェクトを追加しようとしましたが、何も動作するようです。どんな助けでも大歓迎です!
ポスト[mcve] .. – user1803551
私は過去に書かれたすべてのクラスを提供して、私は私の質問であまりにも多くのコードを提供するために投票した。担当者がここに築き上げるのが難しいので、私はどのように投票し、担当者を失うことなくこれを行うだろう。 –