【发布时间】:2018-12-04 15:11:32
【问题描述】:
我有一个带有两个框的 GUI:一个文本区域和一个标签
第一个带有滚动条的框:
public class ResultView {
private JTextArea resultsTextArea;
private JPanel resultsPanel;
private JScrollPane scrollPane;
public ResultView() {
createGUI();
connectPanel();
}
private void createGUI() {
resultsTextArea = new JTextArea("Command results:");
resultsTextArea.setPreferredSize(new Dimension(380, 2000));
resultsTextArea.setBackground(Color.BLACK);
resultsTextArea.setForeground(Color.WHITE);
resultsTextArea.setEditable(false);
scrollPane = new JScrollPane(resultsTextArea);
scrollPane.setPreferredSize(new Dimension(400, 300));
}
private void connectPanel() {
resultsPanel = new JPanel();
resultsPanel.add(scrollPane);
}
第二个不显示滚动条的框:
public class DrawView {
private JLabel drawView;
private JPanel drawViewPanel;
private JPanel drawViewPaintPanel;
private int currentNumWagons;
private int currentTrain = -1;
private int OFFSET = 100;
private int TRAINLENGTH = 100;
private JScrollPane scrollPane;
public DrawView() {
createGUI();
connectPanel();
}
private void createGUI() {
drawView = new JLabel("DrawView:");
drawView.setPreferredSize(new Dimension(800,20));
drawViewPaintPanel = new JPanel();
drawViewPaintPanel.setPreferredSize(new Dimension(790, 280));
scrollPane = new JScrollPane(drawView);
scrollPane.setPreferredSize(new Dimension(800,300));
}
private void connectPanel() {
drawViewPanel = new JPanel(new BorderLayout());
drawViewPanel.add(drawView, BorderLayout.NORTH);
drawViewPanel.add(drawViewPaintPanel, BorderLayout.CENTER);
drawViewPanel.add(scrollPane);
}
知道如何解决这个问题吗?我需要解决这个问题,因为操作按钮正在将火车添加到标签中,当添加两辆以上的火车时,第三辆火车会在标签下。我将在这里添加一张我的 GUI 的图片,让您了解我的 GUI 是如何设计的:
【问题讨论】:
-
请注意
drawViewPanel.add(scrollPane)等价于drawViewPanel.add(scrollPane, BorderLayout.CENTER)。 -
滚动条不显示,因为面板上没有内容...?尝试设置滚动条策略:docs.oracle.com/javase/7/docs/api/javax/swing/…
标签: java swing user-interface jlabel jscrollpane