我有一個JTable
我正在通過JScrollPane
。垂直滾動條顯示並工作良好,但水平滾動條不起作用。我提供的代碼是可編譯的,只需將您的路徑放入InputFile1
字符串並在該位置創建一個長文件即可。水平滾動條不能在Java Swing中使用JTable
我已經嘗試了很多解決方案,但沒有任何工作。我有一個只有一列的表,該列包含文檔中的行。我需要垂直和水平滾動條。請提出一些解決方案。
其他嘗試:
案例1:
tab.setPreferredSize(new Dimension(400,400));
如果我設置此,垂直滾動條不工作。
案例2:
tab.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
如果我設置,列的寬度變得非常小。如果我試圖讓它變大,那麼它也不起作用,只顯示一個水平滾動條,但沒有視口。
您可以取消註釋並檢查它們。
代碼:
public class tablecreate extends JFrame implements ActionListener
{
JPanel mainPanel;
tablecreate() throws IOException
{
mainPanel=new JPanel();
String InputFile1 = "/home/user/Desktop/a.txt";
BufferedReader breader1 = new BufferedReader(new FileReader(InputFile1));
String line1 = "";
line1 = breader1.readLine();
DefaultTableModel model1 = new DefaultTableModel();
JTable tab=new JTable(model1);
model1.addColumn("line");
while((line1=breader1.readLine()) != null)
{
System.out.println(line1);
model1.addRow(new Object[]{line1});
}
breader1.close();
tab.setPreferredScrollableViewportSize(new Dimension(1,1));
tab.setVisible(true);
//tab.setPreferredSize(new Dimension(400,400));
// tab.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JScrollPane js = new JScrollPane(tab,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
js.setPreferredSize(new Dimension(400,400));
mainPanel.setPreferredSize(new Dimension(500, 500));
mainPanel.setSize(500,500);
mainPanel.add(js);
this.add(mainPanel);
}
public static void main(String[] args) throws IOException
{
tablecreate tc=new tablecreate();
tc.setSize(500,500);
tc.setVisible(true);
tc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
}
}
請閱讀作者的全部問題,而不僅是主題;) – 2014-08-29 14:03:40
我已經使用過table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);並告訴結果。我沒有使用frame,所以我不能使用frame.pack(),我只使用JPanel。 – user2769274 2014-08-29 14:14:34
@ user2769274,是的,您正在使用JFrame。爲了顯示面板,您必須將其添加到JFrame(或JDialog或JWindow)。在你的情況下,你正在擴展JFrame,所以你添加面板到框架。您應該使用'tc.set()',而不是使用'tc.setVisible(...)',並且需要進行上面我建議的所有更改。閱讀[如何使用表格]上的Swing教程部分(http://docs.oracle.com/javase/tutorial/uiswing/components/table.html),瞭解如何正確創建帶有表格的框架。 – camickr 2014-08-29 14:20:16