0

ラベルのすぐ隣にテキストフィールドを配置しようとしています。その代わりに、テキストフィールドはラベルの下に配置され、1行を埋めます。JTextfield(10)のような列を作成しようとしましたが、それも機能しませんでした。これは私が使用しているレイアウトについてですか?

public class guessTheNumber extends JFrame{

private JLabel info, info2, info3;
private JTextField input;

public guessTheNumber(){

    super("Guessing Game");
    setLayout(new GridLayout(6,3));

    info = new JLabel("I have a number between 1 and 1000.",SwingConstants.CENTER);
    add(info);

    info2 = new JLabel("Can you guess my number?",SwingConstants.CENTER);
    add(info2);

    info3 = new JLabel("Please enter your first guess:");
    add(info3);

    input = new JTextField("",10);
    add(input);

}
public static void main(String[] args) {

    guessTheNumber gtn = new guessTheNumber();
    gtn.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    gtn.setLocationRelativeTo(null);
    gtn.setSize(500, 200);
    gtn.setVisible(true);
}
}
4

2 に答える 2

1

を使ってみてくださいJPanel。つまり、 に を追加してJPanelからJFrame、JPanel のレイアウト マネージャーを設定します。ほら、

JPanel jp = new JPanel();
add(jp); 
jp.setLayout(new GridLayout(6,3));

JFrameではなく、ラベルとテキストフィールドをパネルに追加する必要があることを覚えておいてください

于 2013-01-15T18:29:00.927 に答える
0

GridLayout(6,4)初期化を に変更しても機能しないことに驚いています。

info3一緒に表示したい場合inputは、次の抜粋を試すことができます。

info3 = new JLabel("Please enter your first guess:");
input = new JTextField("",10);

// Combine both components in a sub-container
JPanel containerPanel = new JPanel();
containerPanel.add(info3);    
containerPanel.add(input);

// Add the container to the guessTheNumber
add(containerPanel);
于 2013-01-15T18:08:21.987 に答える