JFrameのデフォルトレイアウト(FlowLayout)のため、サイズが「動作していません」。このレイアウトでは、オブジェクトのサイズや場所を変更することはできません。
frame() {
setSize(600, 600);
setLayout(new LayoutManager() {...}
txtEnterNum = new JTextField();
txtEnterNum.setSize(100, 50);
setLocation(100, 150);
add(txtEnterNum);
txtEnterNum.setVisible(true);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
:あなたがたJFrameのコンストラクタでレイアウトを設定する必要が
setLayout(new LayoutManager() {
@Override
public void addLayoutComponent(String name, Component comp) {
}
@Override
public void removeLayoutComponent(Component comp) {
}
@Override
public Dimension preferredLayoutSize(Container parent) {
return null;
}
@Override
public Dimension minimumLayoutSize(Container parent) {
return null;
}
@Override
public void layoutContainer(Container parent) {
public void layoutContainer(Container parent) {
float modifierx = Toolkit.getDefaultToolkit().getScreenSize().width/100;
float Sizemodifier = Toolkit.getDefaultToolkit().getScreenSize().height/50;
float modifiery = Toolkit.getDefaultToolkit().getScreenSize().height/150;
int x=(int)(Toolkit.getDefaultToolkit().getScreenSize().width/modifierx);
int y=(int)(Toolkit.getDefaultToolkit().getScreenSize().height/modifiery);
int height =(int)(Toolkit.getDefaultToolkit().getScreenSize().height/Sizemodifier);
int DX =(int)(Toolkit.getDefaultToolkit().getScreenSize().width/modifierx);
int DY =(int)(Toolkit.getDefaultToolkit().getScreenSize().height/modifiery);
for(int i = 0; i<parent.getComponentCount();i++){
if(i%2==0){
parent.getComponent(i).setBounds(x,y,x,height);
x+= DX;
}else{
parent.getComponent(i).setBounds(x,y,x,height);
x=Toolkit.getDefaultToolkit().getScreenSize().width/100;
y+=DY;
}
}
}
});
: 独自のレイアウトを使用してみてください(お使いのコンポーネントのサイズと位置を変更するために、xとyの値を変更します)
以前存在していたtxtEnterNumを削除しましたか? –
現在受け入れられている答えは、テキストフィールドのサイズと位置を決めるための完全な間違った方法です。私(そして他の多くの人)はあなたに正しいアドバイスを提供することができますが、最初に、GUI全体(他のコンポーネントやラベルなどと一緒に)が**表示される**と思われる方法を知る必要があります。 GUIの*意図された*レイアウトのASCIIアートや簡単な描画を最小サイズで提供し、さらに幅と高さを変更可能な場合は余分なスペースをどのように使用するかを示します。 –
BTW 1)フォントサイズが大きい場合を除いて、高さ50は通常テキストフィールドよりもはるかに高くなります。 2) 'txtEnterNum'その名前の 'enter num'部分は、' SpinnerNumberModel'を持つ 'JSpinner'がより良いプログラミングアプローチであり、またユーザにとってより簡単かもしれないことを示唆しています。 –