我已經寫了一個課,我們將這個問題叫做DrawCard,以顯示從我的甲板課中隨機抽取的一張紙牌。我寫了一個圖形對象,其中包含與撲克牌,套裝,值,顏色等相關的信息。我在我的主要方法中初始化對象,並將其添加到JFrame中,它將100%正確顯示並繪製所有內容。然後我添加了一個工具欄,其中的按鈕的動作偵聽器應該創建一個新的DrawCard對象,從框架中刪除第一個並將新框架添加到框架。該程序編譯並運行得很好,但是當我點擊按鈕時,它不會在框架上繪製新的卡。它將刪除第一個,但不會將新的添加到框架,即使我調用repaint方法。Java圖形對象不更新?
這裏是我在我的主要方法的代碼:
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);
我已經打過電話我的JFrame重繪方法在各地的主要方法和我的ActionListener沒有運氣內幾個不同的地方。我也嘗試以不同的順序添加我的對象,但似乎沒有任何工作。任何幫助將不勝感激!
發表[mcve] .. – user1803551
我已經提供了過去寫過的所有課程,並且因爲我的問題提供了太多的代碼而被拒之門外。我怎麼會這樣做,而不是被拒絕投票和失去代表,因爲代表很難在這裏建立起來。 –