>Java >java지도 시간 >Swing에서 JDialog에 구성 요소를 동적으로 추가하려면 어떻게 해야 합니까?

Swing에서 JDialog에 구성 요소를 동적으로 추가하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-26 02:51:11188검색

How Can I Dynamically Add Components to a JDialog in Swing?

JDialog의 필수 구성 요소 추가

Swing 기반 애플리케이션을 사용할 때는 UI 요소를 효율적으로 관리하는 것이 중요합니다. 이 기사에서는 JDialog에 구성 요소를 동적으로 추가하는 일반적인 과제에 대해 자세히 설명합니다.

시나리오

JDialog의 버튼이 JLabel 추가를 트리거하는 시나리오를 구상해 보세요. 및 JTextField, 다음에서 대화 상자를 변환합니다.

[버튼 전 대화 상자 이미지 클릭]

대상:

[버튼 클릭 후 대화상자 이미지]

문제

그러나 대화 상자의 새로운 구성 요소는 종종 성공하지 못합니다. 대화 상자는 변경되지 않은 상태로 유지되므로 개발자는 머리를 긁적입니다.

해결책

새로운 구성 요소를 대화 상자에 성공적으로 통합하려면 다음을 준수해야 합니다. 단계:

  1. add()를 사용하여 컨테이너에 새 구성 요소를 추가합니다. 메서드.
  2. 컨테이너에서 유효성 검사() 메서드를 호출하여 레이아웃을 강제로 업데이트합니다.
  3. 컨테이너에서 repaint() 메서드를 호출하여 시각적 개체를 새로 고칩니다.

솔루션을 설명하려면 다음 코드를 고려하세요. 조각:

@Action
public void addNewField() {
    Container contentPane = getContentPane();
    JLabel label = new JLabel("welcome");
    label.setBounds(10, 10, 100, 10); // Specify X & Y coordinates
    contentPane.add(label);

    contentPane.validate();
    contentPane.repaint();
    this.pack();
}

이러한 단계를 따르면 새 JLabel 추가를 반영하여 대화 상자가 동적으로 업데이트됩니다.

추가 고려 사항

NetBeans의 "Free Design" 레이아웃과 같은 특정 레이아웃 관리자로 작업할 때 새 레이아웃의 경계를 명시적으로 지정하는 것이 좋습니다. setBounds() 메서드를 사용하는 구성 요소입니다. 이렇게 하면 구성 요소가 대화 상자 내에서 원하는 위치에 표시됩니다.

위 내용은 Swing에서 JDialog에 구성 요소를 동적으로 추가하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.