gpt4 book ai didi

java - 为什么JFrame无法显示任何形状?

转载 作者:太空宇宙 更新时间:2023-11-04 06:24:09 25 4
gpt4 key购买 nike

我编写了一个简单的程序,用户将输入一个 int 值,JFrame 必须在 JPannel 上绘制矩形和椭圆形。但就我而言,程序只能显示没有任何形状的窗口。我的代码有什么问题:

形状.java:

package shapestest;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class ShapesTest{

public static void main(String[] args) {
String input=JOptionPane.showInputDialog(
"Enter 1 to draw a rectangles\n"+
"Enter 2 to draw ovals"
);
int choise=Integer.parseInt(input);
Shapes panel=new Shapes(choise);

JFrame application=new JFrame();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
application.add(panel);
application.setSize(300, 300);
application.setVisible(true);

}

}

ShapesTest.java:

package shapestest;
import java.awt.Graphics;
import javax.swing.JPanel;

public class Shapes extends JPanel{
private int choice;
public Shapes(int userChoise){
userChoise=choice;
}
public void paintComponent(Graphics g){
super.paintComponent(g);
for(int i=0; i<10;i++)
{
switch(choice)
{
case 1:
g.drawRect(10+i * 10,10+i * 10,50+i * 10,50+i * 10);
break;
case 2:
g.drawOval(10+i*10,10+i*10,50+i*10,50+i*10);
break;
}
}
}

}

最佳答案

这样改

public Shapes(int userChoise){
choice = userChoise;
}

因为您分配了userChoise = choice。所以选择默认值为 0 并且永远不会更新。在paintComponent中没有0的情况,所以不会绘制任何内容

关于java - 为什么JFrame无法显示任何形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27019970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com