2012-08-13 6 views
0

jTablejScrollpane을 사용한다는 점에서 스윙 응용 프로그램에서 작업 중입니다. 이제는 내 문제가 있습니다. 하나의 스크롤 판에 여러 개의 표를 추가하고 스크롤 영역을 다른 표 영역에 추가해도되지만 커서가 테이블 영역에있을 때 작동하지 않습니다.jscrollpane이 스윙 응용 프로그램에서 jtable에서 작동하지 않습니다.

두 테이블 사이의 공간이 잘 작동하지만 테이블 영역에서는 작동하지 않습니다. 누구든지 내 문제에 대해 어떤 생각을 갖고 있습니까? 그래서 내가 여기에 표시하지 않는 훨씬 복잡한 코드가

+4

을 스크롤을 사용하지 않고 헤더를 추가하는 형식을주는에서 사용할 수 있습니다

... – Luna

+1

여러 추가 할 수 없습니다 구성 요소를 scrollPane (일명 : 메인 뷰포트)에 추가합니다. 따라서 "작업 중"에 대한 설명은 실제로는 불가능합니다. 경험하고있는 것을 보여줄 수있는 샘플 코드 (best : SSCCE)를 보여줄 것을 고려하십시오. – kleopatra

답변

0

한 패널에서 스크롤 패널을 사용하지 않고 여러 테이블을 추가 한 다음 스크롤 패널에 패널을 추가했습니다. 이렇게하면 내 문제가 해결되었습니다.

상위 수준 구성 요소 (스크롤 창)를 추가하지 않아 추가해야하는 스크롤 창은 표가 표에 추가되지 않습니다. 당신이 당신의 문제가이 질문에 전혀 분명하지 않다, 답변을 얻기를위한 당신의 문장을 수정

//initializes the table 
JTable table=new JTable(rowData, columnNames); 
//add table header to any component(panel) 
component.add(table.getTableHeader()); 
//add table to any component(panel) 
component.add(tableRelatedProducts); 
2

... 저를 사전에 매우 빠르게 ... 감사 답변을주지하시기 바랍니다 ... EUH하는 스크롤에 여러 테이블을 포함하는 패널. 복잡한 부분은 어디에 있습니까? 아래에서 정확히 수행하는 SSCCE를 참조하십시오.

import javax.swing.BoxLayout; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JTable; 
import javax.swing.WindowConstants; 
import javax.swing.table.DefaultTableModel; 
import java.awt.BorderLayout; 
import java.awt.EventQueue; 

public class TableTest { 
    public static void main(String[] args) { 
    EventQueue.invokeLater(new Runnable() { 
     @Override 
     public void run() { 
     JFrame testFrame = new JFrame("Test"); 

     JPanel contentPane = new JPanel(new BorderLayout()); 
     JPanel tablePanel = new JPanel(); 
     tablePanel.setLayout(new BoxLayout(tablePanel, BoxLayout.PAGE_AXIS)); 
     addTableToPanel(tablePanel); 
     addTableToPanel(tablePanel); 
     JScrollPane scrollPane = new JScrollPane(tablePanel); 
     contentPane.add(scrollPane); 
     testFrame.setContentPane(contentPane); 

     testFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
     testFrame.pack(); 
     testFrame.setVisible(true); 
     } 
    }); 
    } 

    private static void addTableToPanel(JPanel aTablePanel) { 
    JTable table = createTable(); 
    aTablePanel.add(table.getTableHeader()); 
    aTablePanel.add(table); 
    } 

    private static JTable createTable(){ 
    return new JTable(new DefaultTableModel(new Object[][]{new Object[]{"Data1-1", "Data1-2"}, new Object[]{"Data2-1", "Data2-2"}}, 
                 new Object[]{"Column1", "Column2"})); 
    } 
} 

커서가 테이블 위에있을 때 스크롤하는 데 문제가 없습니다. 그래서 우리는 귀하의 질문에 더 많은 정보가 필요합니다.

아마도 문제를 재현 할 수있는 SSCCE를 만들거나 조정하면 문제가되는 코드 조각을 발견하게 될 것입니다.

+0

답변을 얻었으나 문제는 jScrollpane에 테이블을 추가하지 않고 테이블을 추가하는 방법입니다. jScrollpane없이 추가하면 헤더가 표시되지 않습니다. 답장을 보내 주셔서 감사합니다 – Tejas

+0

머리글을 수동으로 추가하는 코드 조각을 참조하십시오. 이 내용은 [표 자습서] (http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#show)에서 설명합니다. – Robin

관련 문제