そのため、ボタンのクリックからコマンドで一連のコントロールを作成する C# で開発されたアプリケーションがあります。多くのコントロールの作成を行いますが、簡単にするために作成するセットの最初の 2 つだけに縮小しました。下の図では、[作成] ボタン (クリックすると非表示になります) を押すと、16 個のテキスト ボックス (スクロールして詳細を表示する機能) とコンボ ボックスがそれぞれ互いに整列されていることがわかります。
さて、本番前にクロスプラットフォーム環境でこれを開発することを考えるべきだったことはわかっていますが、それを無視して、私の主な問題は、Swing と AWT GUI オブジェクトを使用して Java でこのアプリケーションをエミュレートすることです。
示されているように、テキスト ボックスをすべて一列に作成する機能があります。
さらに、コンボ ボックスを配置したい場所に、図のように一列に並べて作成することもできます。
ただし、両方で動的作成を実行しようとすると、場所/配置がめちゃくちゃになります。
不足している属性またはプロパティはありますか? 位置の配置のコードは次のとおりです...デフォルトとは異なる他の属性がオンまたはオフになっていることはありません。
panelContainer.add(newComboBox);
newComboBox.setSize(95, 20);
newComboBox.setLocation(miniCount * (newComboBox.getWidth() + 10) + 80, 45 + levelCount * 170);
panelContainer.add(newTextBox);
newTextBox.setSize(95, 20);
newTextBox.setLocation(miniCount * (newTextBox.getWidth() + 10) + 80, levelCount * 170);
miniCount 変数と levelCount 変数は、行ごとに 6 つ (miniCount) の項目しかないことを確認し、必要に応じて次の行に移動するようにします (levelCount)。もちろん残りのマジックナンバーは位置決め用です。
テキスト ボックスは AWT TextFields ボックスです。コンボ ボックスは AWT チョイス ボックスです。
編集: Java アプリケーションと C# アプリケーションは別です。最終的には同じアルゴリズムを実行しますが、GUI を同じように動作させるのに問題があります。