자바 Canvas 와 JFrame 그리고 JPanel 클래스에 대한 질문입니다.
바나나맛사탕
안녕하세요
이거 도저히 풀리지 않아서 이렇게 글을 올려봅니다.
소스는 제가 하던 것에서 안되는 것을 다시 짜 보았는데 그래도 안되는군요
일단 JFrame 을 상속하는 test 클래스와 can 이란 canvas 를 상속하는 클래스가 있고
test 클래스에서 can을 만들어 JPanel 에 추가 해서
프레임을 띄우게 만들어 보왔습니다..
그런데 프레임상에 Can 클래스의 그림이 안보이네요
너무 답답하군요
찾아보와도 없고
간절히 부탁드립니다..
import javax.swing.*;
import java.awt.*;
class test extends JFrame
{
public test()
{
JPanel p = new JPanel();
p.add(new can());
getContentPane().add(p);
}
public static void main(String[] args)
{
JFrame t= new test();
t.setSize(300, 300);
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
t.setVisible(true);
System.out.println(Hello World!);
}
}
class can extends Canvas
{
public void paint(Graphics g)
{
g.drawLine(20, 30, 110, 200);
}
}
-
은솔
이렇게 하니 되는군요 정말 감사합니다.
그런데 제가 MenuBar 를 구현하고 있었거든요
그런데 또 매뉴가 Canvas에 가려져 안보이더라구요
결국 타협해서
JPanel 에 paintCompoenet 매소드를
이용해서 그림 그리니 매뉴도 잘뜨고 잘되는군요 !! -
내꼬야
레이아웃에 따라 나오는게 다르군요
감사합니다.
다시 해봐야 겠군요 -
터전
import javax.swing.*;
import java.awt.*;
class Test extends JFrame
{
\tpublic Test()
\t{
\t\tJPanel p = new JPanel();
\t\tp.setLayout(new BorderLayout());
\t\tp.add(new can(),BorderLayout.CENTER);
\t\tgetContentPane().add(p,BorderLayout.CENTER);
\t}
\tp -
흰가람
panel에 레이아웃이 기본으로 flowlayout입니다. 레이아웃을 borderlayout으로 바꾸어 주니 잘되네요..