1

使用する配置に関係なく、JLabelは常にJScrollpaneの上部ではなく、左側に表示されます。コードは次のとおりです。

final JPanel choseTypeOfAnswerText = new JPanel();
JLabel label = new JLabel("Answer:");

label.setHorizontalTextPosition(JLabel.CENTER);
label.setVerticalTextPosition(JLabel.TOP);
choseTypeOfAnswerText.add(label);

//now a scroll pane for the answer area
JScrollPane answerScroller = new JScrollPane(answerArea);
answerScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
answerScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
choseTypeOfAnswerText.add(answerScroller, BorderLayout.CENTER);
//add(answerScroller);
choseTypeOfAnswerText.setVisible(true);
4

3 に答える 3

4
  • choseTypeOfAnswerText.add(answerScroller, BorderLayout.CENTER);

  • ()に変更LayoutMangerする必要がありますBorderLayoutJPanel.setLayout(new BorderLayout())

  • JPanelFlowLayout説明されている問題に対応して、実装されています

  • デフォルトでのみTop-Level Containers実装されていますBorderLayout

于 2012-11-08T11:52:16.820 に答える
1

あなたは言うのを忘れました、それlabelはパネルの上部領域に追加されることになっています:

choseTypeOfAnswerText.add(label, BorderLayout.PAGE_START);

そして、mKorbelが述べたように、LayoutManagerをに設定する必要がありますBorderLayout

于 2012-11-08T11:52:16.213 に答える
0

を使用する場合は、 ;JScrollPaneに入れる必要はありません。JPanel実際にはJPanelに取って代わります。にラベルを追加できますJScrollPane

于 2012-11-08T11:52:42.247 に答える