gpt4 book ai didi

java - JScrollPane 未出现,元素溢出

转载 作者:行者123 更新时间:2023-12-02 07:13:08 25 4
gpt4 key购买 nike

现在正在做一项作业,我实际上正在编写我的第一个 GUI。除了我的滚动条之外,一切都工作正常 - 添加它后不仅不会显示,而且即使在我将其注释掉之后,添加的最后一个元素(通过 .add 函数调用)也会覆盖整个 GUI。将布局设置为 null 似乎可以解决这个问题,但我不确定这是否会帮助或阻碍第一个问题。我已经浏览了 Oracle 的文档和示例,但没有看到我需要的内容。这是相关代码(变量 a-g 似乎漂浮在空间中,它们是单独部分的一部分,我没有粘贴它以隔离 GUI 代码):

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

public class Example
{
public static void main(String[] args)
{

JFrame mygui = new JFrame();
mygui.getContentPane();
mygui.setBounds(100, 100, 700, 500);
mygui.setLayout(new BorderLayout()); //playing with layout here

JLabel first = new JLabel("integer:");
JLabel second = new JLabel("float:");
JLabel third = new JLabel("short:");
JLabel fourth = new JLabel("long:");
JLabel fifth = new JLabel("byte:");
JLabel sixth = new JLabel("double:");
JLabel seventh = new JLabel("boolean:");
JTextField myint = new JTextField("" + a);
JTextField myfloat = new JTextField("" + b);
JTextField myshort = new JTextField("" + c);
JTextField mylong = new JTextField("" + d);
JTextField mybyte = new JTextField("" + e);
JTextField mydbl = new JTextField("" + f);
JTextField mybool = new JTextField("" + g);
JTextArea myarea = new JTextArea();
JScrollPane scrolla = new JScrollPane(myarea);

first.setOpaque(true);
first.setBounds(20, 20, 50, 20);
second.setOpaque(true);
second.setBounds(20, 70, 50, 20);
third.setOpaque(true);
third.setBounds(20, 120, 50, 20);
fourth.setOpaque(true);
fourth.setBounds(20, 170, 50, 20);
fifth.setOpaque(true);
fifth.setBounds(20, 220, 50, 20);
sixth.setOpaque(true);
sixth.setBounds(20, 270, 50, 20);
seventh.setOpaque(true);
seventh.setBounds(20, 320, 50, 20);

myint.setBounds(70, 20, 50, 20);
myint.setOpaque(true);
myfloat.setBounds(70, 70, 50, 20);
myfloat.setOpaque(true);
myshort.setBounds(70, 120, 50, 20);
myshort.setOpaque(true);
mylong.setBounds(70, 170, 80, 20);
mylong.setOpaque(true);
mybyte.setBounds(70, 220, 50, 20);
mybyte.setOpaque(true);
mydbl.setBounds(70, 270, 50, 20);
mydbl.setOpaque(true);
mybool.setBounds(70, 320, 50, 20);
mybool.setOpaque(true);

myarea.setBounds(200, 50, 250, 200);
myarea.setOpaque(true);
scrolla.setPreferredSize(new Dimension(250, 200));

mygui.add(first);
mygui.add(second);
mygui.add(third);
mygui.add(fourth);
mygui.add(fifth);
mygui.add(sixth);
mygui.add(seventh);

mygui.add(myint);
mygui.add(myfloat);
mygui.add(myshort);
mygui.add(mylong);
mygui.add(mybyte);
mygui.add(mydbl);
mygui.add(mybool);
mygui.add(scrolla);

myarea.append("" + errcheck + "\n");
myarea.append("" + valcheck + "\n");

while(y < 2)
{
myarea.append("" + a + "\n");
myarea.append("" + b + "\n");
myarea.append("" + c + "\n");
myarea.append("" + d + "\n");
myarea.append("" + e + "\n");
myarea.append("" + f + "\n");
myarea.append("" + g + "\n");
myarea.append("" + w + "\n");
myarea.append("" + u + "\n");
myarea.append("" + v + "\n");
myarea.append("" + secondary + "\n");
myarea.append("" + whilecount + "\n");;
y++;
a--;
}

mygui.setVisible(true);
mygui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

我确信这很简单,但我们将不胜感激。

最佳答案

BorderLayout 有五个定义的位置,可以在其中添加组件...

enter image description here

默认位置是中心

基本上发生了什么,当您将每个组件添加到框架/内容 Pane 时,它会删除最后一个组件并将其自身放置在中间,因为给定位置中只能存在一个组件。

首先更改布局管理器。看看A Visual Guide to Layout Managers一些想法

关于java - JScrollPane 未出现,元素溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15263502/

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