我有列表,表格和按钮组。例如。因此,表格将位于BorderLayout.WEST等的中心和列表
我觉得我真的不明白,因为当我开始下面的简单代码时,没有水平滚动条。但是当JList中的某个元素只能看到一部分时,我需要它。
import java.awt.BorderLayout;
import javax.swing.*;
public class ListDemo {
private JFrame frame;
private JPanel mainPanel;
public ListDemo() {
createPartControl();
}
private void createPartControl() {
frame = new JFrame();
frame.setTitle("JList Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
createMainPanel();
frame.add(mainPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
private void createMainPanel() {
mainPanel = new JPanel();
mainPanel.setLayout(new BorderLayout());
String[] words = { "Word1", "Word2", "Word2", "Word4", "Word5", "very long worddddddddddddddd" };
JList<String> list = new JList<>(words);
// list.setFixedCellWidth(100);
JScrollPane pane = new JScrollPane(list);
// pane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
mainPanel.add(pane, BorderLayout.WEST);
}
public static void main(String[] args) {
new ListDemo();
}}
我在JList中尝试了固定宽度方法,但它不起作用。
答案 0 :(得分:0)
在添加到Frame之前,您还需要将mainPanel放入JScrollPane:
frame.add(new JScrollPane(mainPanel));
答案 1 :(得分:0)
尝试将滚动窗格添加到BorderLayout面板的中心:
mainPanel.add(pane, BorderLayout.CENTER);
如果您需要它,请使用嵌套面板。