응용 프로그램에서 작업 중이며 초기 단계에서 멈추었습니다. JPanel
에 JTextField
이 있고 JFrame
에 있습니다. JTextField
이 (가) 없습니다. 사용하는 경우스윙 구성 요소가 표시되지 않습니다.
JPanel p0 = (JPanel) f.getContentPane();
작동합니다. 하지만
JPanel p0 = new JPanel();
f.add(p0);
와 함께 그래서 문제는 다음과 같습니다
- 왜 필드는 표시되지 않습니다? (가장 중요한 q)
- 앞서 언급 한 두 가지 접근 방식의 차이점은 무엇입니까?
코드 : 말씀 드리지만
import java.awt.*;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
public class Main
{
static Font fontDefault = new Font("arial", Font.PLAIN, 15);
public static void main (String [ ] args)
{
JFrame f = new JFrame("Liquid");
f.setSize(new Dimension(840, 400));
//f.setIconImage(image);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//JPanel p0 = (JPanel) f.getContentPane();// is it necessary?
JPanel p0 = new JPanel();
p0.setLayout(null);
JPanel p1 = new JPanel();
p1.setLayout(null);
JTextField tfHostName = new JTextField("default text", 20);
tfHostName.setBounds(50, 50, 200, 25);
tfHostName.setFont(fontDefault);
JButton bRequest = new JButton("request");
JButton bReset = new JButton("reset");
JTextArea taTest = new JTextArea("default text", 1, 20);
p0.add(tfHostName);
f.add(p0);
f.add(p1);
p0.add(taTest);
//f.pack();
f.setResizable(false);
f.setVisible(true);
}
}
:
그것은 JPanel p0 = (JPanel) f.getContentPane();
와 함께 작동하지만 ID는 내가 더 편안 해요 두번째 접근하지 않는 이유는 무엇입니까? 또한 두 번째 패널을 추가하는 방법과 각 패널의 구성 요소를 자동 정렬하는 방법은 무엇입니까?
업데이트 : 내가 어떤 좌표/위치를 지정하지 않은 아마 때문에 코드가 처음에 작동하지 않았다는 것을 깨달았다
...
더 나은 도움을 더 빨리 JPanel p0 = new JPanel()에 관한 [SSCCE] (http://sscce.org/), 짧고, 실행 가능한, 컴파일 가능한 게시물을 게시하십시오. f.add (p0); – mKorbel
EDITED. 코드 추가. 나는 처음부터이 작업을하고 싶었지만 문제는 그들의 표준에 의해 좋지 않다는 것을 말해 주었다. – mireazma
'앞서 언급 한 두 가지 접근법의 차이점은 무엇인가? '- 첫 번째 접근법은 기본 layot manger . 두 번째 방법은 레이아웃 관리자를 사용하지 않습니다. null 레이아웃을 사용하지 마십시오! setBounds()를 사용하지 마십시오! 초보자는 항상 null 레이아웃으로 놀고 작동하지 않을 때 불평하는 이유는 무엇입니까? 이 포럼에 게시 한 모든 예제 코드는 레이아웃 관리자를 사용합니다. null 레이아웃을 사용하는 코드를 어디에서 얻을 수 있습니까? 나의 조언은 그 웹 사이트를 무시하는 것이다. – camickr