그려진 사각형이있는 JPanel이 올바르게 표시되지 않음

조롱

나는 클래스가 Main확장 JFrame및 클래스 DrawingPanel확장 JPanel. DrawingPanel그것의 paintComponent()방법에 사각형을 채 웁니다 . Main간단 JFrame합니다.

Main에의 인스턴스를 추가 DrawingPanel합니다 JFrame.

문제는:

에 대한 레이아웃을 설정하지 않으면 Main의 사각형 DrawingPanel이 올바르게 표시됩니다. 나는의 레이아웃 설정하는 경우 Main가정을 FlowLayout(), 사각형이 표시되지 않습니다,하지만 난 알고 paintComponent()있는 방법 DrawingPanel내가 확인이 메소드 내부에서 콘솔에 뭔가를 인쇄하기 때문에, 실행 않습니다를. 또한 패널의 검은 색 테두리가 나타납니다.

암호:

DrawingPanel 클래스 :

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

public class DrawingPanel extends JPanel {

    Rectangle rect = new Rectangle(50,50,50,50);

    public void paintComponent(Graphics g){
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;
        g2d.fill(rect);
    }   

}

클래스 메인 :

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

public class Main extends JFrame {

    JPanel panel;

    public Main(){

        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(400,400);
        setVisible(true);
        setLayout(new FlowLayout());//If I delete this line, the square gets
                                      //displayed correctly. Otherwise, the panel
                                      //and it's black border are displayed without
                                      //a black square inside of them.

        panel = new DrawingPanel();
        panel.setBorder(BorderFactory.createLineBorder(Color.BLACK));

        add(panel);

    }

    public static void main(String[] args) {
        Main m = new Main();
    }

}

당신의 도움을 주셔서 감사합니다 :)

세이지

Main에 대한 레이아웃을 설정하지 않으면 정사각형이 올바르게 표시됩니다. Main에 대한 레이아웃을 설정하면 FlowLayout ()을 가정하면 사각형이 표시되지 않습니다.

  • 항상 LayoutManager 사용 : 작업중인 FlowLayout
  • FlowLayout컨테이너에 추가 할 컴포넌트 의 선호 크기에 따라 컴포넌트의 선호 크기를 설정하십시오 . 구성 요소를 확장하고 재정의하는 getPreferredSize(Dimenstion)것은 구성 요소의 내용에 따라 크기를 조정할 수 있으므로 크기 힌트를 제공하는 데 바람직합니다.
  • JFrame의 setSize(Dimension). 대신 pack()사용 사례에서 모든 구성 요소를 추가하면 호출 하십시오. 패킹 방법은 모든 내용이 원하는 크기 이상이되도록 프레임 크기를 조정합니다.
  • setVisible(true)프레임에 구성 요소를 모두 추가 한 후도 호출 한 후에 호출되어야 pack()JFrame.
  • 그리고 GUI 렌더링 작업을 EDT 안에 넣는 것을 잊지 마십시오. 심지어 JFrame.setVisible(true)EDT 내에서 실행되어야합니다. 의 만들기 사용 SwingUtilities.invokeLater(Runnable)이 경우에.
  • @camickr가 제안 했듯이 위의 모든 권장 사항이 실제로 적용 되는지 확인하려면 사용자 지정 페인팅 단계 수행 을 확인하는 것을 잊지 마십시오 .

공식 튜토리얼 페이지 확인 :

  1. FLowLayout 사용 방법
  2. 일반적인 레이아웃 문제 해결

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Excel VBA 16 진수 색상이 올바르게 표시되지 않음

분류에서Dev

NSIS 설치 프로그램 이름이 올바르게 표시되지 않음

분류에서Dev

그려진 사각형이 표시되지 않음

분류에서Dev

Lazy Line Painter-사각형이 올바르게 표시되지 않음

분류에서Dev

DateTime 형식이 올바르게 표시되지 않음

분류에서Dev

Python 형식이 올바르게 표시되지 않음

분류에서Dev

Excel에서 시간이 올바르게 표시되지 않음

분류에서Dev

배경 이미지가 올바르게 표시되지 않음

분류에서Dev

SVG 아이콘이 올바르게 표시되지 않음

분류에서Dev

이온 탭 색상이 올바르게 표시되지 않음

분류에서Dev

CSS 레이아웃이 올바르게 표시되지 않음

분류에서Dev

geom_boxplot이 올바르게 표시되지 않음

분류에서Dev

Django Wagtail TableBlock이 올바르게 표시되지 않음

분류에서Dev

Packagist에서 Github 별이 올바르게 표시되지 않음

분류에서Dev

패널 제목이 올바르게 표시되지 않음

분류에서Dev

JavaScript 출력이 올바르게 표시되지 않음

분류에서Dev

목록 항목이 올바르게 표시되지 않음

분류에서Dev

laravel에서 URL이 올바르게 표시되지 않음

분류에서Dev

pydev의 주석이 올바르게 표시되지 않음

분류에서Dev

Android 배경색이 올바르게 표시되지 않음

분류에서Dev

MS Excel 플롯이 올바르게 표시되지 않음

분류에서Dev

Wordpress (Genesis) 위젯 열이 올바르게 표시되지 않음

분류에서Dev

관련 제품이 올바르게 표시되지 않음

분류에서Dev

테이블보기가 올바르게 표시되지 않음

분류에서Dev

Bootstrap Carousel이 올바르게 표시되지 않음

분류에서Dev

다시 열 때 Matplotlib 그림이 올바르게 표시되지 않습니다.

분류에서Dev

십진수로 배율을 조정할 때 이미지가 올바르게 표시되지 않음

분류에서Dev

Java GIF 애니메이션이 올바르게 다시 그려지지 않음

분류에서Dev

Rmarkdown 그림 캡션이 올바르게 인쇄되지 않음

Related 관련 기사

  1. 1

    Excel VBA 16 진수 색상이 올바르게 표시되지 않음

  2. 2

    NSIS 설치 프로그램 이름이 올바르게 표시되지 않음

  3. 3

    그려진 사각형이 표시되지 않음

  4. 4

    Lazy Line Painter-사각형이 올바르게 표시되지 않음

  5. 5

    DateTime 형식이 올바르게 표시되지 않음

  6. 6

    Python 형식이 올바르게 표시되지 않음

  7. 7

    Excel에서 시간이 올바르게 표시되지 않음

  8. 8

    배경 이미지가 올바르게 표시되지 않음

  9. 9

    SVG 아이콘이 올바르게 표시되지 않음

  10. 10

    이온 탭 색상이 올바르게 표시되지 않음

  11. 11

    CSS 레이아웃이 올바르게 표시되지 않음

  12. 12

    geom_boxplot이 올바르게 표시되지 않음

  13. 13

    Django Wagtail TableBlock이 올바르게 표시되지 않음

  14. 14

    Packagist에서 Github 별이 올바르게 표시되지 않음

  15. 15

    패널 제목이 올바르게 표시되지 않음

  16. 16

    JavaScript 출력이 올바르게 표시되지 않음

  17. 17

    목록 항목이 올바르게 표시되지 않음

  18. 18

    laravel에서 URL이 올바르게 표시되지 않음

  19. 19

    pydev의 주석이 올바르게 표시되지 않음

  20. 20

    Android 배경색이 올바르게 표시되지 않음

  21. 21

    MS Excel 플롯이 올바르게 표시되지 않음

  22. 22

    Wordpress (Genesis) 위젯 열이 올바르게 표시되지 않음

  23. 23

    관련 제품이 올바르게 표시되지 않음

  24. 24

    테이블보기가 올바르게 표시되지 않음

  25. 25

    Bootstrap Carousel이 올바르게 표시되지 않음

  26. 26

    다시 열 때 Matplotlib 그림이 올바르게 표시되지 않습니다.

  27. 27

    십진수로 배율을 조정할 때 이미지가 올바르게 표시되지 않음

  28. 28

    Java GIF 애니메이션이 올바르게 다시 그려지지 않음

  29. 29

    Rmarkdown 그림 캡션이 올바르게 인쇄되지 않음

뜨겁다태그

보관