과제를 지금 당장 진행하고 있습니다. 본질적으로 첫 번째 GUI를 작성하고 있습니다. 스크롤 막대를 제외하고는 모든 것이 올바르게 작동하고 있습니다. 추가 할 때뿐만 아니라 표시되지 않을뿐만 아니라 주석을 추가 한 후에도 .add 함수 호출을 통해 추가 된 마지막 요소가 전체 GUI를 포함합니다. 레이아웃을 null로 설정하면 문제가 해결되는 것처럼 보였지만 첫 번째 문제가 도움이되는지 방해가되는지 확신 할 수 없습니다. 필자는 오라클의 설명서와 예제를 이미 봤으며 필자가 필요로하는 것을 보지 못했습니다.JScrollPane이 나타나지 않고 요소가 넘쳤습니다
이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);
}
}
내가 확신이 뭔가 : 여기에 관련 코드 (공간에 떠있는 것 같다 변수 AG는 별도의 섹션의 일부이며 GUI 코드를 분리 할 수 있도록 내가 그것을 붙여하지 않은 경우)입니다 간단하지만 모든 의견을 보내 주시면 감사하겠습니다.
'null'레이아웃을 사용하는 초보자에게 절대 제안하지 마십시오. 처리해야 할 필요없이 처리 할 수 있습니다. 그것은 나쁜 습관이고 이런 상황에서 다른 사람들에게 더 혼란스럽게 도움이되지 않습니다. – MadProgrammer
-1, 프레임에 구성 요소를 추가하면 내용 창에 구성 요소가 추가되므로 getContentPane()을 사용하면 필요하지 않으며 문제를 수정/변경하지 않습니다. 또한 null 레이아웃을 사용하는 것은 좋지 않으므로 이와 같은 양식을 작성하는 데 사용해서는 안됩니다. 적절한 방법은, 적절한 LayoutManager를 사용해 JPanel를 작성해, 그 패널을 프레임에 추가하는 것입니다. – camickr
@MadProgrammer null 레이아웃의 문제점은 무엇입니까? 레이아웃 관리자는 꽤 복잡한 영역이며 모든 구성 요소의 범위를 명시 적으로 지정하면 초보자가 쉽게 작업 할 수있는 좋은 방법이 될 수 있습니다. –