2017-01-11 18 views
0

하나의 JLabel을 제목으로 만들고 사용자 정의하여 문제없이 표시했습니다. 두 번째 JLabel 만 표시 할 때 두 번째 JLabel을 만들려고 할 때 문제가 발생했습니다. 내가 세 번째 것을 만들었을 때, 그것만이 표시되고 첫 번째와 두 번째는 표시되지 않습니다.한 번에 하나의 JLabel 만 표시 (Java 스윙)

기본적으로 최신 JLabel 만 표시됩니다. 동시에 여러 개의 JLabel을 표시 할 수 있습니까?

여기 내 코드입니다. (당신이 JFrame의에서 JLabels로하고있는대로) 당신이 컨테이너에 두 개 이상의 구성 요소를 추가 할 때

public class MainForm extends JFrame { 

EmployeeDAO dao = new EmployeeDAO(); 
private static JLabel label, name; 


MainForm() 
{ 
    super("Employee Database"); 
    GUI(); 
} 

private void GUI() 
{ 
    JLabel label = new JLabel("Enter Employee Information"); 
    label.setVerticalAlignment(JLabel.TOP); 
    label.setHorizontalAlignment(JLabel.CENTER); 
    label.setFont(new Font("Serif", Font.PLAIN, 20)); 
    label.setForeground(Color.red); 
    add(label); 

    JLabel name = new JLabel("Name: "); 
    add(name); 
    } 
} 
+2

'JFrame'은 기본적으로 'BorderLayout'을 사용합니다.이 구성 요소는 사용 가능한 5 가지 위치 중 하나에 하나의 구성 요소 만 표시합니다 (기본값은 가운데입니다). 레이아웃을 변경해보십시오. [Laying Out 컨테이너 내의 구성 요소] (https://docs.oracle.com/javase/tutorial/uiswing/layout/index.html) – MadProgrammer

+0

[How to Use Labels] (https://docs.oracle.com)를 읽어보십시오. /javase/tutorial/uiswing/components/label.html). –

답변

0

일반적으로, 당신은 당신이 구성 요소가 표시되도록 사용하려는 않는 레이아웃 매니저를 결정해야 네가 원하는 위치에

laying out components in containers과 관련된 자습서를 살펴보십시오.

0

Layout Manager을 선택하고 이에 따라 setLayout으로 전화해야합니다.

0

장면에 추가 할 각 요소에 .setBounds을 사용하거나 그리드 레이아웃과 같은 다른 레이아웃을 사용하여 UI 요소를 배치하십시오. 이 문제는 새 요소를 추가 할 때부터 이전 요소 위로 가기 때문에 발생합니다.