2013-01-08 52 views
0

在下圖中,底部JComponentJScrollPane內的JList(列表)。 默認情況下,可見行的數量是8或10,我不知道。 但突然間,當我對項目進行更多更改時,它將 更改爲此,現在我一次只能看到一個項目(fsgisfg)。 如何更改一次要顯示的行數?JList突變

list.setVisibleRowCount(8)不起作用。

list使用AbstractListModel的擴展名作爲模型。

主菜單JFrame使用GridBagLayout

我不知道可能會發生什麼情況,因爲我甚至試圖撤銷 項目中所做的所有更改,結果仍然相同。

private JList<String> list; 
[...] 

list = new JList<String>(); 
list.setVisibleRowCount(8); //doesn't change anything 
[...] 

JScrollPane scroll2 = new JScrollPane(list); 
[...] 

list.setModel(new BookListModel(library)); 
list.repaint(); //the model gets the data for the list, and refresh is needed 

[...] 

GridBagConstraints c = new GridBagConstraints(); 
c.gridx = 0; 
c.gridy = 4; 
c.gridwidth = 2; 
frame.add(scroll2, c); 

image http://dl.dropbox.com/u/71389667/problem.jpg

+1

你應該添加一些你的代碼... – DmitryK

+2

這還不足以用來推斷髮生了什麼。您確實需要提供[SSCCE](http:// sscce。org /) – MadProgrammer

+0

這個想法是,我不知道是什麼造成了這個,因爲一開始這沒有問題。我無法顯示所有的代碼,因爲我不知道問題出在哪裏:(。 – Vlad

回答

0

電解金屬錳...那是相當現在很難拿到什麼,所以首先我建議你閱讀this tutorial你繼續找漏洞之前引起該問題...

由於對於這一刻,我可能會認爲問題實際上可能來自佈局管理器或此方向的某些內容......嘗試圍繞包含面板的JList(或使用的組件)佈局管理器。看起來你現在正在使用某種絕對的一個,所以改變它可以讓我們說FlowLayout。

作爲另一個提示,檢查是ListModel添加了空元素(s)?

更多的建議,將有很好看的更多的代碼...


報告,如果它幫助

0

我想我已經發現了這個問題,但我不知道什麼是導致它:首先,我的書保存在磁盤上的文件夾(稱爲圖書館)的XML文件;現在,如果我刪除此文件夾,以便啓用按鈕創建庫,則JList顯示爲正常大小(顯示8行)。即使我添加書籍,JList也保持不變,這很好。當我試圖真正改變已創建的XML文件。如果我讓這樣

<?xml version="1.0" encoding="UTF-8"?> 
<book name="name" author="" author="" > 
<chapter title="chapter1"> 
    <paragraph> 
     <sentence>sentence1</sentence> 
     <sentence>sentence1</sentence> 
     <sentence>sentence1</sentence> 
     <sentence>sentence1</sentence> 
    </paragraph> 

</chapter> 
</book> 

JList中顯示砸了出現問題,因爲默認情況下該文件看起來像這樣

<?xml version="1.0" encoding="UTF-8"?> 
<book name="name" author="author" isbn="isbn" />` 

如果我做出這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<book name="fadsf" author="" isbn="" > 
    <chapter title="chapter1"> 
     <paragraph> 
      <sentence>sentence1</sentence> 
      <sentence>sentence1</sentence> 
      <sentence>sentence1</sentence> 
    </paragraph> 
    </chapter> 
</book> 

它工作正常。 如果我添加第四個句子標籤,事情變得很難看。

+0

顯示的XML解析和JList的元素添加代碼 – user592704

+0

我不知道爲什麼,但它似乎通過使框架更大和列表設置最小行工作 \t \t list.setVisibleRowCount(8); \t \t frame.setSize(400,500); – Vlad

+0

你使用BorderLayout嗎?我不確定你在這個問題中展示的圖像是否包含'NORTH'中的一個寬面板,我說得對嗎?因此,嘗試將FlowLayout設置爲北面板,或者糾正我,如果我錯誤的佈局管理器,因爲圖像不是很清楚:S – user592704