Kev*_*ltz 2 java swing jscrollpane jscrollbar
我有两个滚动窗格,我试图设置滚动条始终可见.出于某种原因,当我尝试使用下面的代码(滚动代码)时,我得到一个错误"方法setHorizontalScrollBarPolicy(int)未定义类型JTextPane".有什么建议?
滚动代码:
scrollPane.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
Run Code Online (Sandbox Code Playgroud)
我创建滚动窗格的代码:
JPanel ScrollPanes = new JPanel();
frame.getContentPane().add(ScrollPanes, BorderLayout.CENTER);
ScrollPanes.setLayout(new GridLayout(0, 2, 0, 0));
JTextPane textPane_0 = new JTextPane();
ScrollPanes.add(textPane_0);
textPane_0.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
textPane_0.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
JTextPane textPane_1 = new JTextPane();
ScrollPanes.add(textPane_1);
Run Code Online (Sandbox Code Playgroud)
完整代码:
package swing;
import java.awt.EventQueue;
public class Swing {
private JFrame frame;
private JTextField textField;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Swing window = new Swing();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Swing() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 600, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel TopApps = new JPanel();
frame.getContentPane().add(TopApps, BorderLayout.NORTH);
TopApps.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5));
JComboBox comboBox = new JComboBox();
comboBox.setPreferredSize(new Dimension(100, 20));
TopApps.add(comboBox);
textField = new JTextField();
TopApps.add(textField);
textField.setColumns(20);
JScrollPane scrollPanes = new JScrollPane();
frame.getContentPane().add(scrollPanes, BorderLayout.CENTER);
scrollPanes.setLayout(new GridLayout(0, 2, 0, 0));
JTextPane textPane_0 = new JTextPane();
scrollPanes.add(textPane_0);
textPane_0.setBorder(BorderFactory.createLoweredBevelBorder());
scrollPanes.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPanes.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
JTextPane textPane_1 = new JTextPane();
scrollPanes.add(textPane_1);
textPane_1.setBorder(BorderFactory.createLoweredBevelBorder());
scrollPanes.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPanes.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
JPanel bottomPanel = new JPanel();
frame.getContentPane().add(bottomPanel, BorderLayout.SOUTH);
bottomPanel.setLayout(new GridLayout(2, 1, 5, 0));
bottomPanel.setBorder(BorderFactory.createLoweredBevelBorder());
JTextPane bText = new JTextPane();
bottomPanel.add(bText);
bText.setBorder(BorderFactory.createLoweredBevelBorder());
JLabel status = new JLabel("Status");
bottomPanel.add(status);
status.setHorizontalAlignment(JLabel.CENTER);
}
}
Run Code Online (Sandbox Code Playgroud)
textPane_0是JTextPane不是JScrollPane这样的例子它没有setHorizontalScrollBarPolicy方法.
你可能希望你的包裹textPane_0和textPane_1在新的情况下JScrollPane,设置其滚动条属性和它们添加到您的框架.
换句话说使用
JTextPane textPane_0 = new JTextPane();
JScrollPane jScrollPane1 = new JScrollPane(textPane_0);//warp text pane
//and set properties of wrapper
jScrollPane1.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
jScrollPane1.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
ScrollPanes.add(jScrollPane1);
JTextPane textPane_1 = new JTextPane();
JScrollPane jScrollPane2 = new JScrollPane(textPane_1);
jScrollPane2.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
jScrollPane2.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
ScrollPanes.add(jScrollPane2);
Run Code Online (Sandbox Code Playgroud)
DEMO:
class Demo {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,400);
JPanel ScrollPanes = new JPanel();
frame.getContentPane().add(ScrollPanes, BorderLayout.CENTER);
ScrollPanes.setLayout(new GridLayout(0, 2, 0, 0));
JTextPane textPane_0 = new JTextPane();
JScrollPane jScrollPane1 = new JScrollPane(textPane_0);
jScrollPane1.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
jScrollPane1.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
ScrollPanes.add(jScrollPane1);
JTextPane textPane_1 = new JTextPane();
JScrollPane jScrollPane2 = new JScrollPane(textPane_1);
jScrollPane2.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
jScrollPane2.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
ScrollPanes.add(jScrollPane2);
frame.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)