如何在 java 小程序中重新绘制绘制方法?
How to repaint paint methods in java applet?
我想用小程序在2之间切换"frames"。
我想用一个小程序来画一些东西,然后删除它并画别的东西。有什么办法吗?
示例:
if(true){
public void paint1(Graphics g) {
g.setColor(Color.black);
g.fillRect( 80,400, 20, 10 );
}
}else
public void paint2(Graphics g) {
g.setColor(Color.green);
g.fillRect( 50,440, 70, 60 );
}
}
我尝试过的所有尝试都导致小程序崩溃。
我的项目:我和我的朋友正在编写一个简单的代码,我们需要在其中使用某种小程序图形。我们的想法是制作一个让 2 个角色上下跳跃的程序。问题是我们将有一个 "AI",只要他想跳就跳。所以 CardLayout 不会工作,因为那样我们就可以控制一切。
如果您打算 "switch" 在 2 张绘图之间,我建议使用 CardLayout。
但是,如果您想通过根据条件绘制来继续您当前拥有的内容,您可以这样做:
class DrawingSpace extends JPanel{
private BufferedImage display;
//Other variables, initializations, constructors not shown
private void init(){
display = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
}
public void draw(){
if(whatever){ //if whatever == true
Graphics2D g2 = display.createGraphics();
g2.setColor(Color.BLACK);
g2.fillRect( 80, 400, 20, 10 );
repaint();
}else{
Graphics2D g2 = display.createGraphics();
g2.setColor(Color.GREEN);
g2.fillRect( 50, 440, 70, 60 );
repaint();
}
}
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(display, 0, 0, width, height, null);
}
}
那么第一个问题是:你想什么时候切换?
单击按钮?几毫秒后?
用一个按钮就很简单了:
您只需绘制 2 个面板并默认显示第一个面板。单击按钮后,您可以使用方法 repaint() 和 revalidate() 来刷新 JFrame。
我想用小程序在2之间切换"frames"。
我想用一个小程序来画一些东西,然后删除它并画别的东西。有什么办法吗?
示例:
if(true){
public void paint1(Graphics g) {
g.setColor(Color.black);
g.fillRect( 80,400, 20, 10 );
}
}else
public void paint2(Graphics g) {
g.setColor(Color.green);
g.fillRect( 50,440, 70, 60 );
}
}
我尝试过的所有尝试都导致小程序崩溃。
我的项目:我和我的朋友正在编写一个简单的代码,我们需要在其中使用某种小程序图形。我们的想法是制作一个让 2 个角色上下跳跃的程序。问题是我们将有一个 "AI",只要他想跳就跳。所以 CardLayout 不会工作,因为那样我们就可以控制一切。
如果您打算 "switch" 在 2 张绘图之间,我建议使用 CardLayout。
但是,如果您想通过根据条件绘制来继续您当前拥有的内容,您可以这样做:
class DrawingSpace extends JPanel{
private BufferedImage display;
//Other variables, initializations, constructors not shown
private void init(){
display = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
}
public void draw(){
if(whatever){ //if whatever == true
Graphics2D g2 = display.createGraphics();
g2.setColor(Color.BLACK);
g2.fillRect( 80, 400, 20, 10 );
repaint();
}else{
Graphics2D g2 = display.createGraphics();
g2.setColor(Color.GREEN);
g2.fillRect( 50, 440, 70, 60 );
repaint();
}
}
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(display, 0, 0, width, height, null);
}
}
那么第一个问题是:你想什么时候切换? 单击按钮?几毫秒后?
用一个按钮就很简单了: 您只需绘制 2 个面板并默认显示第一个面板。单击按钮后,您可以使用方法 repaint() 和 revalidate() 来刷新 JFrame。