我已经写了一个课,我们将这个问题叫做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
我已经提供了过去写过的所有课程,并且因为我的问题提供了太多的代码而被拒之门外。我怎么会这样做,而不是被拒绝投票和失去代表,因为代表很难在这里建立起来。 –