私はスイングアプリケーションに取り組んでおり、jTable
これに関するjScrollpane
問題は、1つのスクロールペインに複数のテーブルを追加し、スクロールは他のテーブル領域では正常に動作しますが、カーソルがテーブル領域にある場合は動作しません。
2 つのテーブルの間のスペースではスクロールは正常に機能しますが、テーブル領域では機能しません。誰でも私の問題について何か考えがありますか? だから私に非常に速く答えてください...前もって感謝します...
私はスイングアプリケーションに取り組んでおり、jTable
これに関するjScrollpane
問題は、1つのスクロールペインに複数のテーブルを追加し、スクロールは他のテーブル領域では正常に動作しますが、カーソルがテーブル領域にある場合は動作しません。
2 つのテーブルの間のスペースではスクロールは正常に機能しますが、テーブル領域では機能しません。誰でも私の問題について何か考えがありますか? だから私に非常に速く答えてください...前もって感謝します...
非常に複雑なコードがあるため、ここでは表示しません...ええと、スクロールペインに複数のテーブルを含むパネルです。複雑な部分はどこですか。まさにそれを行う 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 を作成する (またはこれを調整する) と、問題のあるコードが見つかるでしょう。
1 つのパネルでスクロールペインを使用せずに複数のテーブルを追加してから、パネルをスクロールペインに追加しました。この方法で問題が解決しました。
高レベルのコンポーネント(スクロールペイン)を追加しないと、ヘッダーがテーブルに追加されないため、追加する必要があるスクロールペイン。
スクロールペインを使用せずにアンダーギブ形式を使用してヘッダーを追加できます
//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);