簡體   English   中英

jscrollpane沒有在swing應用程序中使用jtable

[英]jscrollpane not working on jtable in swing application

我正在研究swing應用程序,因為我使用jTablejScrollpane現在我的問題是我在一個滾動窗格中添加了多個表,滾動在其他表格區域上工作正常但是當光標在表區域時它不起作用。

兩個表之間的空間滾動工作正常,但在表區域它不起作用。 誰對我的問題有任何想法? 所以請快速給我答復...在此先感謝...

有很復雜的代碼,所以我沒有在這里顯示 ... 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(或調整這個),您將發現有問題的代碼片段。

我在一個面板中添加了多個表而沒有使用滾動窗格,然后將面板添加到scrollpane中。這樣我的問題就解決了。

您需要添加的滾動窗格因為沒有添加高級組件(滾動窗格),標頭不會添加到表中。

您可以使用under give格式添加標題而不使用scrollpane

//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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM