2012-11-08 54 views
1

無論我使用何種對齊方式,JLabel總是顯示在JScrollpane的左側,而不是頂部。下面是代碼:JScrollpane上的JLabel

final JPanel choseTypeOfAnswerText = new JPanel(); 
JLabel label = new JLabel("Answer:"); 

label.setHorizontalTextPosition(JLabel.CENTER); 
label.setVerticalTextPosition(JLabel.TOP); 
choseTypeOfAnswerText.add(label); 

//now a scroll pane for the answer area 
JScrollPane answerScroller = new JScrollPane(answerArea); 
answerScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); 
answerScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); 
choseTypeOfAnswerText.add(answerScroller, BorderLayout.CENTER); 
//add(answerScroller); 
choseTypeOfAnswerText.setVisible(true); 
+1

爲了更快提供更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –

+0

由於您使用滾動容器,因此無法獲取對象的物理座標。 –

回答

1

你忘了告訴,那label應該在面板的頂部區域添加:

choseTypeOfAnswerText.add(label, BorderLayout.PAGE_START); 

而且,像mKorbel說,你必須設置佈局管理到BorderLayout

0

如果使用實施BorderLayout相應一個JScrollPane你不需要把它放在JPanel;它實際上取代了JPanel。您可以將您的標籤添加到JScrollPane

+0

我必須使用JPanel來實現程序的窗簾功能 – user1794564