我無法使水平滾動條出現。我試過對JTextPane使用JTextPane.setSize(),JTextPane.setPreferredSize()和無大小方法。我也使用JScrollPane.setPreferredSize()。如何使水平滾動條出現在包含JTextPane組件的JScrollPane中
垂直滾動條出現,但水平滾動條不出現。
下面是一個例子:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test {
private int textPaneWidth = 500;
private int textPaneHeigth = 200;
private int scrollPaneWidth = 100;
private int scrollPaneHeigth = 100;
private JTextPane textPane;
private JButton button;
private JFrame frame;
private JScrollPane scrollPane;
public static void main(String[] args) {
Test gui = new Test();
gui.go();
}
private void go() {
frame = new JFrame("Test");
button = new JButton("button");
textPane = new JTextPane();
scrollPane = new JScrollPane(textPane, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
frame.setLayout(new FlowLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
button.addActionListener(new ButtonListener());
textPane.setFont(new Font("Courier", Font.PLAIN, 12));
// Sizes:
// textPane.setSize(textPaneWidth, textPaneHeigth); // ???
// textPane.setPreferredSize(new Dimension(textPaneWidth, textPaneHeigth)); // ???
scrollPane.setPreferredSize(new Dimension(scrollPaneWidth, scrollPaneHeigth));
frame.add(button);
frame.add(scrollPane, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
private class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
textPane.setText("==================================================================== \n" +
"==================================================================== \n" +
"==================================================================== \n" +
"==================================================================== \n" +
"==================================================================== \n");
}
}
}
當按下按鈕時,該字符串被添加到的JTextPane。有垂直滾動,但沒有水平滾動。
這就是我按下按鈕後看到:
我在做什麼錯?
是否有足夠的文字底線不會出現?相反,是否出現了所有五行'= ='? – Xynariz
@Xynariz添加了問題發生的圖像。 – Rob
謝謝,現在就寫答案。 – Xynariz