-1

スクロール可能なテストエリアを作成してみてください.JTextAreaビットでScrollPaneを使用するとうまくいきません.Googleでたくさんのことをしていますが、問題を解決 できません.このリンクなどの解決策を見ましたが、問題も解決できません.

これが私のコードです

 JTextArea txtrZdsxasd = new JTextArea();
txtrZdsxasd.setFont(new Font("Microsoft YaHei", Font.PLAIN, 14));
    txtrZdsxasd.setRows(8);

    txtrZdsxasd.setColumns(8);
    txtrZdsxasd.setLineWrap(true);
    txtrZdsxasd.setWrapStyleWord(true);
    JScrollPane scrollPane = new JScrollPane(txtrZdsxasd);

    scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
     scrollPane.setPreferredSize(new Dimension(100,100));

私はEclipseでSWTを使用しているので、これが私のレイアウトです

GroupLayout groupLayout = new GroupLayout(frmThermalProcessing.getContentPane());
    groupLayout.setHorizontalGroup(
        groupLayout.createParallelGroup(Alignment.LEADING)
            .addGroup(groupLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
                    .addGroup(groupLayout.createSequentialGroup()
                        .addComponent(txtrZdsxasd, GroupLayout.PREFERRED_SIZE, 966, GroupLayout.PREFERRED_SIZE)
                        .addGap(18)
                        .addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 18,GroupLayout.PREFERRED_SIZE))
                    .addGroup(groupLayout.createSequentialGroup()
                        .addComponent(lblLocation)
                        .addGap(39)
                        .addComponent(lblFolderName))
                    .addComponent(btnBrowse)
                    .addGroup(groupLayout.createSequentialGroup()
                        .addComponent(btnNewButton)
                        .addGap(27)
                        .addComponent(lblSaveFileLocation)
                        .addGap(18)
                        .addComponent(lblUri)))
                .addContainerGap())
    );
    groupLayout.setVerticalGroup(
        groupLayout.createParallelGroup(Alignment.LEADING)
            .addGroup(groupLayout.createSequentialGroup()
                .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
                    .addGroup(groupLayout.createSequentialGroup()
                        .addGap(20)
                        .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
                            .addComponent(lblFolderName)
                            .addComponent(lblLocation, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE))
                        .addGap(18)
                        .addComponent(btnBrowse)
                        .addPreferredGap(ComponentPlacement.RELATED)
                        .addComponent(txtrZdsxasd, GroupLayout.PREFERRED_SIZE, 283, GroupLayout.PREFERRED_SIZE)
                        .addGap(18)
                        .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
                            .addComponent(btnNewButton)
                            .addComponent(lblSaveFileLocation)
                            .addComponent(lblUri)))
                    .addGroup(groupLayout.createSequentialGroup()
                        .addGap(99)
                        .addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 100, GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(18, Short.MAX_VALUE))
    );

私が間違ったことをした??? 私はJavaの専門家ではないので、親切に理解するのを手伝ってください

4

1 に答える 1

0

たぶん、この行を変更してみてください:

.addComponent(txtrZdsxasd, GroupLayout.PREFERRED_SIZE, 283, GroupLayout.PREFERRED_SIZE)

これとともに:

.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 283, GroupLayout.PREFERRED_SIZE)

グループ レイアウトの経験はありませんが、一般的に言えば、swing コンポーネントをコンテナーに追加すると、最後に配置した場所にのみ留まります。そのため、レイアウト コンテナーに直接追加するときに、scrollPane から textarea を削除している可能性があります。

また、後で scrollPane を追加しようとすると.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 100, GroupLayout.PREFERRED_SIZE)))、テキスト領域が既に削除されています。

この投稿は、問題に関連する Swing コンポーネントに関する詳細情報を提供する可能性があります: Swing コンポーネントを複数のコンテナーに追加できませんか?

于 2014-05-23T11:34:53.150 に答える