JPanel 에 JTable이 원래 안붙어요?
벼리
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import java.awt.Dimension;
import java.awt.GridLayout;
public class JTableTest extends JFrame{
JPanel cont,jp;
JTable jtable;
JTableTest(){
cont = new JPanel();
final String[] column = {번호,이름,나이,지역};
final Object[][] data = {{1,홍길동,30,서울},{2,지상렬,30,대전},{,,,},{,,,}};
SwingUtilities.invokeLater(new Runnable(){
public void run(){
jtable = new JTable(data,column);
jp = new JPanel(new GridLayout(1,0));
jtable.setPreferredScrollableViewportSize(new Dimension(700,400));
jp.add(new JScrollPane(jtable));
add(jp);
//cont.add(jp); 패널에 붙이면 안붙어요
}
});
}
public static void main(String[] args) {
JTableTest jtt = new JTableTest();
jtt.setSize(700,400);
jtt.setVisible(true);
}
}
원래 JPanel에 JTable 붙이면 안붙어요?
그냥 프레임에 붙이면 되는데..패널에 붙이면 안붙네요..
그리고 위소스에서 실행시 테이블이 안보이다가 프레임 크기 조절을 해야 보이는 이유가
권고사항대로 따라 한다고 했는데 시작시에 출력이 안되네요..
-
도손
감사합니다. 생각을 더 하고 질문을 했어야 하는데..죄송 -,.-
-
한봄찬
위분 말씀대로 cont라는 JPanel instance가 JFrame(JTableTest)에 add가 안되어 있네요.
cont = new JPanel(); 아래 getContentPane().add(cont);를 사용하시면 보입니다.
근데 invokeLater를 사용하니까 바로 화면에 table이 안나오고 resize가 발생해야 보이네요.. -
캐릭터
add(cont);