我正在使用swing应用程序,jTable
现在jScrollpane
我的问题是我在一个滚动窗格中添加了多个表格,并且滚动在其他表格区域上正常工作,但是当光标在表格区域上时它不起作用。
两个表格之间的空间滚动工作正常,但在表格区域它不起作用。有人对我的问题有任何想法吗?所以请尽快给我答案...提前谢谢...
我正在使用swing应用程序,jTable
现在jScrollpane
我的问题是我在一个滚动窗格中添加了多个表格,并且滚动在其他表格区域上正常工作,但是当光标在表格区域上时它不起作用。
两个表格之间的空间滚动工作正常,但在表格区域它不起作用。有人对我的问题有任何想法吗?所以请尽快给我答案...提前谢谢...
有很多复杂的代码,所以我没有在这里展示......嗯,一个在滚动窗格中包含多个表格的面板。复杂的部分在哪里。请参阅下面的 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(或调整这个),您会发现有问题的代码段。
我在一个面板中添加了多个表格而不使用滚动窗格,然后将面板添加到滚动窗格中。这样我的问题就解决了。
您需要添加的滚动窗格,因为没有添加高级组件(滚动窗格),标题不会添加到表中。
您可以使用 under give 格式添加标题而不使用滚动窗格
//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);