Java Can';t从另一个类中的实例化类绘制对象
我不能在课堂上画矩形和圆形。这个表单创建的类在我的主类中实例化,但是我不能在那里绘制,只能在它们自己的类中绘制 我不擅长说话。看看代码 班级游戏:Java Can';t从另一个类中的实例化类绘制对象,java,swing,colors,Java,Swing,Colors,我不能在课堂上画矩形和圆形。这个表单创建的类在我的主类中实例化,但是我不能在那里绘制,只能在它们自己的类中绘制 我不擅长说话。看看代码 班级游戏: @Override public void paint(Graphics g) { super.paint(g); Graphics2D graficos = (Graphics2D) g; /* switch (corAtualR) { case PRETO: { graficos.setCol
@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D graficos = (Graphics2D) g;
/* switch (corAtualR) {
case PRETO: {
graficos.setColor(Color.black);
graficos.fillRect((int) mb.x, (int) mb.y, 60, 60);
break;
}
case VERMELHO: {
graficos.setColor(Color.red);
graficos.fillRect((int) mb.x, (int) mb.y, 60, 60);
break;
}
case AZUL: {
graficos.setColor(Color.blue);
graficos.fillRect((int) mb.x, (int) mb.y, 60, 60);
break;
}
case AMARELO: {
graficos.setColor(Color.yellow);
graficos.fillRect((int) mb.x, (int) mb.y, 60, 60);
break;
}
case VERDE: {
graficos.setColor(Color.green);
graficos.fillRect((int) mb.x, (int) mb.y, 60, 60);
break;
}
default: {
graficos.setColor(Color.black);
graficos.fillRect(0, 0, 0, 0);
break;
}
} */
mb.paint(graficos);
graficos.dispose();
}
}
注释掉的代码是我无法从实例化的类中绘制的代码
这是我的菜单栏课程:
// Ações do Retângulo
public void acoesRetangulo() {
// Action Listeners dos botões para pintar o retângulo da respectiva cor.
pretoR.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
corAtualR = PRETO;
}
});
}
}
@Override
public void paint(Graphics g) {
switch (corAtualR) {
case PRETO: {
g.setColor(Color.black);
g.fillRect((int) x, (int) y, 60, 60);
break;
}
case VERMELHO: {
g.setColor(Color.red);
g.fillRect((int) x, (int) y, 60, 60);
break;
}
case AZUL: {
g.setColor(Color.blue);
g.fillRect((int) x, (int) y, 60, 60);
break;
}
case AMARELO: {
g.setColor(Color.yellow);
g.fillRect((int) x, (int) y, 60, 60);
break;
}
case VERDE: {
g.setColor(Color.green);
g.fillRect((int) x, (int) y, 60, 60);
break;
}
default: {
g.setColor(Color.black);
g.fillRect(0, 0, 0, 0);
break;
}
}
g.dispose();
}
}
请注意,没有实例(mb,菜单栏)的相同代码在我的程序中正常工作
只是在等待答案,抱歉我的新手在那,呵呵。(还有我的英语)您似乎误用了继承:菜单栏绝对不应该扩展游戏类。通过这样做,您可以更改游戏变量的状态,但它们不是实际显示的游戏对象的状态,并且您最终只是愚弄自己,以为您的代码可以工作。相反,MenuBar类应该包含游戏变量,该变量应该引用实际可见的游戏对象 旁白:
- 您应该使用JPanel的
方法进行所有绘制,而不是paintComponent(Graphics g)
方法paint(Graphics g)
- 千万不要对JVM提供给您的图形对象调用
,否则可能会出现绘制问题dipose()
“它不起作用”
并没有给我们太多可以继续的东西,我们可以用它来找出它不起作用的原因。我建议你把事情大大简化,创建一个,一个有两个类,一个有绘图,另一个有菜单代码,然后发布。让我们体验一下您的问题,从而更好地为您提供解决方案。