gpt4 book ai didi

java - Frame.getContentPane().add();工作不正常?

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

我创建的这些脚本遇到了一些(非常烦人的)问题。

Sburb.java

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

public class Sburb
{
public static void main (String[] args)
{
JFrame frame = new JFrame ("Welcome to Sburb");
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
spirograph page = new spirograph();
progressbar bar = new progressbar();

frame.getContentPane().add(page);
frame.getContentPane().add(bar);
frame.pack();
frame.setVisible(true);
frame.setResizable(true);
}
}

进度条.java

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

public class progressbar extends JPanel
{

JProgressBar current;
JTextArea out;
JButton find;
Thread runner;
int num = 1;

progressbar()
{
super();

//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pane = new JPanel();
pane.setLayout(new FlowLayout());
current = new JProgressBar(0, 2000);
current.setStringPainted(false);
pane.add(current);
//setContentPane(pane);
}


public void iterate() {
while (num < 2000) {
current.setValue(num);
try {
Thread.sleep(300);
} catch (InterruptedException e) { }
num += 5;
}
}

// public static void main(String[] arguments) {
// progressbar frame = new progressbar();
// frame.pack();
// frame.setVisible(true);
// frame.iterate();
// }
}

spirograph.java

import java.awt.Color;

import java.awt.FlowLayout;


import javax.swing.ImageIcon;

import javax.swing.JLabel;
import javax.swing.JPanel;


public class spirograph extends JPanel
{
private ImageIcon image;
private JLabel label;
private JLabel frame = new JLabel();
private JPanel panel = new JPanel();

spirograph()
{

this.setOpaque(true);
this.setBackground(Color.BLACK);

setLayout(new FlowLayout());
image = new ImageIcon(getClass().getResource("Gate.gif"));
label = new JLabel(image);
add(label);

progressbar bar = new progressbar();
}
}

我试图将文件“progressbar”调用到 Sburb 文件,但当我这样做时,它只给我一个简单的 JFrame(未修复):

/image/GHZTl.jpg

当我摆脱“frame.getContentPane().add(bar);”时在 Sburb.java 中,它给了我这个(固定的,有点):

/image/Brmke.jpg

我该如何解决这个问题?我到处都找遍了,但还是不明白!我似乎也不知道如何将条形图直接对齐到 gif 下方。

最佳答案

frame.getContentPane().add(page);
frame.getContentPane().add(bar);

JFrame 的内容 Pane 是一个 BorderLayout 的集合,它只能接受任何一个中的一个组件 em> 的边框布局约束。由于此处未提供任何约束,JRE 将尝试将它们都放在 CENTER 中。

出于这个原因以及其他各种原因,我建议忽略现有的内容 Pane ,将整个 GUI(包含尽可能多的面板)安排到另一个面板(我们称之为 ui) >) 然后调用

frame.setContentPane(ui);

关于java - Frame.getContentPane().add();工作不正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29363613/

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