看到標題。我試圖將組件方向更改爲RIGHT_TO_LEFT
,但這有一個意想不到的副作用 - 它具有指定首選大小的組件的行爲奇怪。Swing JScrollPane - 如何將垂直滾動條設置到左側?
(JDK 1.6.0_23,Eclipse的VE)
編輯
下面是這個例子:
我們JFrame
與jMainScrollPane
就可以了。在jMainScrollPane
裏面我們放置了一個jMainPanel
。現在將jMainPanel
的首選尺寸設置爲比jMainScrollPane
更窄。 jMainPanel
仍將佔用jMainScrollPane
上的所有空間。現在將jMainScrollPane
的方向改爲RIGHT_TO_LEFT
,看看會發生什麼。
示例代碼(改變jMainScrollPane
的方向看到的差異):
import java.awt.BorderLayout;
import java.awt.ComponentOrientation;
import java.awt.Dimension;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class TestFrame extends JFrame {
private JPanel jContentPane = null;
private JScrollPane jMainScrollPane = null;
private JPanel jMainPanel = null;
public TestFrame(){
super();
initialize();
}
private void initialize(){
this.setSize(480, 339);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}
private JPanel getJContentPane(){
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getJMainScrollPane(), BorderLayout.CENTER);
}
return jContentPane;
}
private JScrollPane getJMainScrollPane(){
if (jMainScrollPane == null) {
jMainScrollPane = new JScrollPane();
jMainScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
jMainScrollPane.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
jMainScrollPane.setViewportView(getJMainPanel());
}
return jMainScrollPane;
}
private JPanel getJMainPanel(){
if (jMainPanel == null) {
jMainPanel = new JPanel();
jMainPanel.setLayout(new BorderLayout());
jMainPanel.setPreferredSize(new Dimension(30, 30));
}
return jMainPanel;
}
}
EDIT2
由於這個奇怪的性質,我已經提交一個bug到Oracle。他們給我寄了一個錯誤鏈接
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7038455
目前有沒有這樣的錯誤,但 - 我想,它被選中。
但問題仍然存在 - 有沒有解決方法或其他方法?
重複[JScrollPane左滾動條](http://stackoverflow.com/questions/1311689/jscrollpane-with-scroll-bar-to-left) – Manoj 2011-04-20 08:06:45
@Manoj似乎像@Frozen_Spider已經嘗試了答案提到的問題,但結果不滿意。 – Riduidel 2011-04-20 08:10:17
@Frozen_Spider當你寫下「佈局糟糕的佈局」時,你能告訴我們你的意思嗎?或發送截圖? – Riduidel 2011-04-20 08:10:52