詳細については説明しませんので、フローレイアウトマネージャを使用することに限定しています。明らかに問題があり、コンポーネントを同じ行に保持する必要があるということは、コンポーネントがパネルの端を超えているため、コンポーネントをフレームの下に押し込むことです。フローレイアウトマネージャを使用してコンポーネントを水平方向に整列させる
ラベルと対応するテキストフィールドが同じ行に表示されるようにコンポーネントを揃える方法はありますか?
詳細については説明しませんので、フローレイアウトマネージャを使用することに限定しています。明らかに問題があり、コンポーネントを同じ行に保持する必要があるということは、コンポーネントがパネルの端を超えているため、コンポーネントをフレームの下に押し込むことです。フローレイアウトマネージャを使用してコンポーネントを水平方向に整列させる
ラベルと対応するテキストフィールドが同じ行に表示されるようにコンポーネントを揃える方法はありますか?
私が正しく理解していれば、主な問題は、ラベルと入力が分離されていることです(右側のラベルと、次の行の入力が左側にあります)。
この問題の解決策の1つは、ラベルと入力フィールドをサブパネルにグループ化し、このサブパネルをFlowLayoutを使用するメインパネルに追加することです。
次のコードは、この方法を示します。
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
*
* @author acampos
*/
public class Main02 {
public static void main(String[] args) {
JFrame jFrame = new JFrame();
JPanel mainPanel = new JPanel();
JPanel dynamicPanel;
JLabel dynamicLabel;
JTextField dynamicInput;
for (int i = 0; i < 5; i++) {
// Creates the panel that will contain the Label AND the Input
dynamicPanel = new JPanel();
// Creates the dynamic label
dynamicLabel = new JLabel("Label " + i + ": ");
// Creates the dynamic text field
dynamicInput = new JTextField(10);
// Adds the label and the text field to the dynamic panel
dynamicPanel.add(dynamicLabel);
dynamicPanel.add(dynamicInput);
dynamicPanel.setSize(100, 100);
// Adds the dynamic panel to the main panel <-- HERE IS THE KEY
mainPanel.add(dynamicPanel);
}
// Set the FlowLayout to the MAIN PANEL, so the dynamic panels
// will 'flow' but the label and the text field will be kept together
mainPanel.setLayout(new FlowLayout(3));
// Adds the main panel (which contains the dynamic panels) to the main frame
jFrame.add(mainPanel);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setVisible(true);
jFrame.setSize(600, 150);
jFrame.setResizable(true);
}
}
このコードを実行する(はい、あなたはそれを実行することができます)と、ラベルと入力はもう分割していないことを確認したJFrameのサイズを変更する場合。
注:次の質問では、コードをコミュニティと共有することを強くお勧めします。これは、より詳細な良い練習です。https://stackoverflow.com/help/how-to-ask