gpt4 book ai didi

java - 无法显示椭圆形

转载 作者:行者123 更新时间:2023-12-01 18:58:21 25 4
gpt4 key购买 nike

我是新来的。一直在阅读问题和答案。最近我抽出时间开始学习Java,并且我非常享受这个过程。直到我开始写一些代码。被卡住简直要了我的命。所以我来寻求一些非常简单的建议,但我无法破解它。

下面的代码尝试创建一个框架,将其最大化,然后将元素放入其中。我只是在开玩笑。首先是按钮1,我尝试更改其大小(因此我将其放入 FlowLayout 中)。然后在主面板上有一个按钮,只是为了......尝试一下。然后是椭圆形。我尝试了 2 个小时来显示椭圆形,但这是不可能的。当我发现“drawOval”时,我以为就是这样,但没有什么区别。想想我正在计划使用按钮1来创建移动球。我离那还很远。

请问,为什么那个愚蠢的椭圆形拒绝展示自己。帮助。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MainClass {
JFrame frame = new JFrame();
JPanel mainPanel = new JPanel();
JPanel southPanel = new JPanel();
JButton button1 = new JButton("Button1");
JButton button2 = new JButton("Button2");
Oval oval = new Oval();

public static void main(String[] args) {
MainClass program = new MainClass();
program.go();
}

public void go() {
buildGUI();
}

public void buildGUI() {
button1.setBorder(BorderFactory.createMatteBorder(2,2,2,2, Color.BLACK));
button1.addActionListener(new Button1Listener());

frame.getContentPane().add(BorderLayout.CENTER, mainPanel);
button1.setPreferredSize(new Dimension(200, 50));
frame.getContentPane().add(BorderLayout.SOUTH, southPanel);
southPanel.add(button1);
mainPanel.add(button2);
mainPanel.add(oval);
frame.setSize(400, 400);
frame.setExtendedState(frame.getExtendedState() | JFrame.MAXIMIZED_BOTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}

class Button1Listener implements ActionListener {
@Override
public void actionPerformed(ActionEvent event) {
//What the button will do.
}
}
}

还有椭圆形部分

import java.awt.*;
import javax.swing.*;

public class Oval extends JPanel {
public void paintComponent(Graphics g) {
g.setColor(Color.orange);
g.fillOval(20, 50, 100, 100);
}
}

最佳答案

JPanel 默认情况下使用 FlowLayout。由于您的 Oval 类不提供任何大小调整提示,因此它被设置为默认大小 0x0

首先将您的类更新为更像...的内容

public class Oval extends JPanel {

@Override
public Dimension getPreferredSize() {
return new Dimension(120, 150);
}

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.orange);
g.fillOval(20, 50, 100, 100);
}
}

to create Moving Balls.

好的,您可能想看看:

关于java - 无法显示椭圆形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59656930/

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