JTextFields@runtimeをJPanelに追加するJavaアプリケーションがあります。基本的に、ユーザーがボタンをクリックすると、新しいJTextFieldが追加され、もう一度クリックが追加されます...
新しいJTextFieldはそれぞれ、前のJTextFieldのすぐ下にあります。明らかに、私はすぐにスペースを使い果たしてしまうので、JScrollPaneを使おうとしています。それは、何を試しても機能しないためです。
- JPanelを右クリックし、スクロールペインで囲みます。動作しませんでした。
- いくつかの例を読んだ後、JScrollPaneコンストラクターの引数としてJPanelが必要であることに気付きました。これは、ScrollPaneとCustomizeCodeを右クリックして行いました。どうやら自動生成されたコードはNetBeansで保護されており、これらすべての宣言などを手動で変更することはできないためです。それでも動作しません。
- JPanelやJScrollPaneのPreferedSizeをnullに設定しようとしましたが、役に立ちませんでした。
- JScrollPaneは、TabJPanel(TabbedPaneのタブ)と呼ぶことができる子です。基本的に、JFrame、JPanel(テキストフィールドを保持)、TabJPanel、およびJScrollPaneの間で可能なすべての親子関係を試し、それらの関係を台無しにしようとしましたが、何も機能しませんでした。
- また、念のため、VerticalScrollBarを「常に表示」しました。スクロールバーが表示されます。JPanelにJTextFieldsを入力しても影響はありません。
- JTextFieldが多すぎると、JPanelの下の境界線の「下」に移動し、表示されなくなります。
関連する場合、新しいJTextFieldsを追加するためのコードは次のようになります。
JTextField newField = new JTextField( columns );
Rectangle coordinates = previousTextField.getBounds();
newField.setBounds(coordinates.x , coordinates.y + 50, coordinates.width, coordinates.height);
JPanel.add(newField);
JPanel.revalidate();
JPanel.repaint();
長い投稿で申し訳ありませんが、私はできるだけ多くの情報を提供しようとしています。初心者であるため、正確に関連するものとそうでないものがわからないためです。前もって感謝します :)