이미 Cotainer에서 JLabel을 넣는 방법을 사용하는 방법은 무엇입니까?

커피

Shikaku-Game을 프로그래밍해야하는데 MyMouseAdapter 클래스의 mouseReleased-Method에서 ViewIcon-Class의 setLine-Methods 중 하나를 사용할 수 없다는 문제가 없습니다. 방법 중 하나를 사용하는 방법을 알고 있습니까?

감사합니다. 건배, 나

MouseMain 클래스 및 MyMouseAdapter 클래스 :

class MouseMain extends JFrame{

Container cont;

public MouseMain () {
    super("Test");
    cont = getContentPane();
    p1 = new defaultPaterns(2);
    p1.setLayout(new GridLayout(2, 2, 1, 1));
    for (int i = 0; i < gameSize; i++) {
        for (int j = 0; j < gameSize; j++) {
            JLabel label = new JLabel(new ViewIcon());
            label.setName (j + ";" + i);
            label.addMouseListener(new MyMouseAdapter());
            p1.add(label);
            myLabels[j][i] = label;
        }
    }
    cont.add(p1, BorderLayout.CENTER );

    JPanel p2 = new JPanel();
    cont.add(p2, BorderLayout.SOUTH);
    setVisible(true);
}

public class MyMouseAdapter extends MouseAdapter {

    public void mouseEntered(MouseEvent e) {
        lastEntered = e.getComponent();
    }

    public void mousePressed(MouseEvent e) {
        mousePressed = e.getComponent();
        coordPressed = new Coordinate(mousePressed.getName());
        System.out.println("mousePressed " + mousePressed.getName());
    }

    public void mouseReleased(MouseEvent e) {
        mouseReleased = lastEntered;
        coordReleased = new Coordinate(mouseReleased.getName());
        System.out.println("mouseReleased " + mouseReleased.getName());
        if (mouseReleased.getName().equals("0;0")) {
            mouseReleased.setForeground(Color.RED);
            mouseReleased.repaint();
        }
    }
}

클래스 ViewIcon :

class ViewIcon extends JLabel implements Icon {

    Graphics2D g2;
    int width;
    int height;

public void paintIcon(Component c, Graphics g, int x, int y) {

    g2 = (Graphics2D) g;
    width = c.getWidth();
    height = c.getHeight();
    g2.setColor(Color.LIGHT_GRAY);
    g2.fillRect(0, 0, width, height);
}

public void setLeftLine() {

    g2.setStroke (new BasicStroke (10));
    g2.setColor(Color.RED);
    g2.drawLine(0, 0, 0, height);
}

}
Camickr
class ViewIcon extends JLabel implements Icon {

JLabel을 확장하지 마십시오. 코드가 수행하는 모든 작업은 Icon 인터페이스를 구현하는 것입니다.

ViewIcon-Class에서 setLine-Methods 중 하나를 사용할 수 없습니다.

커스텀 페인팅은 paintIcon (...) 메소드에서만 수행해야합니다. 페인팅 메서드를 직접 호출해서는 안됩니다.

그림의 모양을 변경하려면 아이콘의 속성을 설정해야합니다. 예를 들어 맨 위 줄을 그리려면 이름을 바꾸고 setTopLine(...)방법을 다음과 같이 변경하십시오 .

public void setTopLinePainted(boolean topLinePainted)
{
    this.topLinePainted = topLinePainted;
} 

그런 다음 paintIcon (...) 메소드에 다음과 같은 코드가 있습니다.

g2.fillRect(0, 0, width, height);

if (topLinePainted)
{
    g2.setStroke (new BasicStroke (10));
    g2.setColor(Color.RED);
    g2.drawLine(0, 0, width, 0);
}

그런 다음 mouseReleased (...) 코드에서 다음과 같은 작업을 수행합니다.

JLabel label = (JLabel)lastEntered;
ViewIcon icon = (ViewIcon)label.getIcon();
icon.setTopLinePainted( true );
label.repaint();

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이 명령을 Makefile에 넣는 방법은 무엇입니까?

분류에서Dev

이미지 배경을 변수에 넣는 방법은 무엇입니까?

분류에서Dev

jlabel 사이에 공백을주는 방법은 무엇입니까?

분류에서Dev

Word : 이미지에서 이미지로 서식을 붙여 넣는 방법은 무엇입니까?

분류에서Dev

Python을 사용하여 DynamoDB 테이블에 항목을 넣는 방법은 무엇입니까?

분류에서Dev

Krusader에서 터미널을 사용하는 방법은 무엇입니까?

분류에서Dev

버튼 사이에 새 줄을 넣는 방법은 무엇입니까? PHP

분류에서Dev

Lambda 표현식을 사용하여 ResultSet의 데이터를 HashMap에 넣는 방법은 무엇입니까?

분류에서Dev

JLabel을 사용하지 않고 패널없이 JFrame에 배경 이미지를 추가하는 방법은 무엇입니까?

분류에서Dev

~ / .config는 무엇을 의미하며 여기에 파일을 넣는 방법은 무엇입니까?

분류에서Dev

~ / .config는 무엇을 의미하며 여기에 파일을 넣는 방법은 무엇입니까?

분류에서Dev

이 레이아웃을 CardView에 넣는 방법은 무엇입니까?

분류에서Dev

SQL WITH 문에서 테이블을 사용하는 방법은 무엇입니까?

분류에서Dev

델파이 7에서 setlocaltime을 사용하는 방법은 무엇입니까?

분류에서Dev

Java 15 이상에서 Nashorn을 사용하는 방법은 무엇입니까?

분류에서Dev

SpriteKit을 사용하여 이미지에 사전 값을 추가하는 방법은 무엇입니까?

분류에서Dev

AFNetworking을 사용하여 캐시에서 UIImageView에 이미지를 표시하는 방법은 무엇입니까?

분류에서Dev

Android 활동에 이미지를 타일링하고 배경색을 넣는 방법은 무엇입니까?

분류에서Dev

Android 활동에 이미지를 타일링하고 배경색을 넣는 방법은 무엇입니까?

분류에서Dev

홈 페이지의 추천 이미지에 갤러리 아이콘을 넣는 방법은 무엇입니까?

분류에서Dev

Docker 컨테이너에 Svelte 앱을 넣는 방법은 무엇입니까?

분류에서Dev

UIBarButtonItem에 햄버거 아이콘을 넣는 방법은 무엇입니까?

분류에서Dev

이미지 차이에서 생성 된 출력을 사용자 정의하는 방법은 무엇입니까?

분류에서Dev

CSS에서 클리핑을 사용하여 두 이미지를 혼합하는 방법은 무엇입니까?

분류에서Dev

CSS를 사용하여 텍스트 색상을 배경 이미지로 넣는 방법은 무엇입니까?

분류에서Dev

사용자가 웹 페이지에 이미지를 붙여 넣을 수 있도록 허용하는 방법은 무엇입니까?

분류에서Dev

MATLAB을 사용하여 이미지의 객체에 색상을 지정하는 방법은 무엇입니까?

분류에서Dev

붙여 넣기없이 PuTTY에서 화면 영역을 복사하는 방법은 무엇입니까?

분류에서Dev

어두운 모드에서 Light UIUserInterfaceStyle 이미지 버전을 사용하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    이 명령을 Makefile에 넣는 방법은 무엇입니까?

  2. 2

    이미지 배경을 변수에 넣는 방법은 무엇입니까?

  3. 3

    jlabel 사이에 공백을주는 방법은 무엇입니까?

  4. 4

    Word : 이미지에서 이미지로 서식을 붙여 넣는 방법은 무엇입니까?

  5. 5

    Python을 사용하여 DynamoDB 테이블에 항목을 넣는 방법은 무엇입니까?

  6. 6

    Krusader에서 터미널을 사용하는 방법은 무엇입니까?

  7. 7

    버튼 사이에 새 줄을 넣는 방법은 무엇입니까? PHP

  8. 8

    Lambda 표현식을 사용하여 ResultSet의 데이터를 HashMap에 넣는 방법은 무엇입니까?

  9. 9

    JLabel을 사용하지 않고 패널없이 JFrame에 배경 이미지를 추가하는 방법은 무엇입니까?

  10. 10

    ~ / .config는 무엇을 의미하며 여기에 파일을 넣는 방법은 무엇입니까?

  11. 11

    ~ / .config는 무엇을 의미하며 여기에 파일을 넣는 방법은 무엇입니까?

  12. 12

    이 레이아웃을 CardView에 넣는 방법은 무엇입니까?

  13. 13

    SQL WITH 문에서 테이블을 사용하는 방법은 무엇입니까?

  14. 14

    델파이 7에서 setlocaltime을 사용하는 방법은 무엇입니까?

  15. 15

    Java 15 이상에서 Nashorn을 사용하는 방법은 무엇입니까?

  16. 16

    SpriteKit을 사용하여 이미지에 사전 값을 추가하는 방법은 무엇입니까?

  17. 17

    AFNetworking을 사용하여 캐시에서 UIImageView에 이미지를 표시하는 방법은 무엇입니까?

  18. 18

    Android 활동에 이미지를 타일링하고 배경색을 넣는 방법은 무엇입니까?

  19. 19

    Android 활동에 이미지를 타일링하고 배경색을 넣는 방법은 무엇입니까?

  20. 20

    홈 페이지의 추천 이미지에 갤러리 아이콘을 넣는 방법은 무엇입니까?

  21. 21

    Docker 컨테이너에 Svelte 앱을 넣는 방법은 무엇입니까?

  22. 22

    UIBarButtonItem에 햄버거 아이콘을 넣는 방법은 무엇입니까?

  23. 23

    이미지 차이에서 생성 된 출력을 사용자 정의하는 방법은 무엇입니까?

  24. 24

    CSS에서 클리핑을 사용하여 두 이미지를 혼합하는 방법은 무엇입니까?

  25. 25

    CSS를 사용하여 텍스트 색상을 배경 이미지로 넣는 방법은 무엇입니까?

  26. 26

    사용자가 웹 페이지에 이미지를 붙여 넣을 수 있도록 허용하는 방법은 무엇입니까?

  27. 27

    MATLAB을 사용하여 이미지의 객체에 색상을 지정하는 방법은 무엇입니까?

  28. 28

    붙여 넣기없이 PuTTY에서 화면 영역을 복사하는 방법은 무엇입니까?

  29. 29

    어두운 모드에서 Light UIUserInterfaceStyle 이미지 버전을 사용하는 방법은 무엇입니까?

뜨겁다태그

보관