gpt4 book ai didi

java - Java GUI程序不会生成随机形状吗?

转载 作者:行者123 更新时间:2023-12-02 11:08:20 26 4
gpt4 key购买 nike

我已经运行并修复了这些错误,但它们表明它们没有得到修复!基本上,GUI假定有一个JcomboBox,人们可以在其中选择形状,并随机绘制该形状多次。

import java.awt.*;
import java.awt.event.*;
import java.util.Random;

import javax.swing.*;

public class Practice4 extends JFrame
{
private final int CIRCLE = 0;
private final int SQUARE = 1;
private final int OVAL = 2;
private final int RECTANGLE = 3;
private int shape;
private JComboBox comboBox;
private String [ ] names = { "Circle", "Square", "Oval", "Rectangle" };

public Practice4 ( )
{
super ( "Drawing Random Shapes" );

comboBox = new JComboBox ( names );
getContentPane ( ).add ( comboBox, BorderLayout.SOUTH );

comboBox.addItemListener (
new ItemListener ( )
{
public void itemStateChanged ( ItemEvent e )
{
shape = comboBox.getSelectedIndex ( );
repaint ( );
}
}
);

setSize ( 400, 400 );
setVisible ( true );
}

public void paint ( Graphics g )
{
super.paint ( g );
Random r = new Random ( );

for ( int k = 1; k {
int x = r.nextInt ( 390 );
int y = r.nextInt ( 370 ) + 25;
int w = r.nextInt ( 400 - x );
int h = r.nextInt ( 400 - y );

switch ( shape )
{
case CIRCLE:
g.drawOval ( x, y, w, w );
break;
case SQUARE:
g.drawRect ( x, y, w, w );
break;
case OVAL:
g.drawOval ( x, y, w, h );
break;
case RECTANGLE:
g.drawRect ( x, y, w, h );
break;
}
}
}

public static void main ( String args [ ] )
{
Practice4 application = new Practice4 ( );
application.setDefaultCloseOperation ( JFrame.EXIT_ON_CLOSE );
}
}

错误
Error ';' expected
for (int k = 1; k (

error illegal start of expression
for (int k = 1; k (

最佳答案

您的错误消息告诉您到底是什么问题:for循环不是有效的for循环。这是无效的Java:

for ( int k = 1; k {

我什至不知道您要在这里做什么,所以除了摆脱它并开始使用适当的Java语法之外,我无法给您其他建议。

一些注意事项:
  • 不直接在JFrame的paint方法内绘制,而是在JPanel的paintComponent方法内绘制。这将防止不必要的副作用潜在地损坏Graphics对象,该对象将在绘画链中稍后用于绘制所有组件。
  • 我不会在绘画方法中创建新的Random对象。而是一次创建一个随机字段,并在绘画方法中使用它。
  • 在本网站上提问时,请尽量只发布格式正确的代码。您的代码都是合理的,使其难以阅读和理解。
  • 关于java - Java GUI程序不会生成随机形状吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32544320/

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