1

私はプログラムを作成していますが、JTextField自分の中にあるを作成する必要があります。すべてが表示されるように設定されています。私は同じで見ることができますが、私のではありません。JPanelJFrameJLabelJPanelJTextField

以下のコードを起動するとJTextField、クリックしたときにのみ表示されます。カーソルをその上に置くと、カーソルがそこにあることがわかります。しかし、それは私のJFrame背景色のようなものです。

import java.awt.Dimension;
import javax.swing.JTextField;

public class HomeSourceTextBox extends JTextField {

private static final long serialVersionUID = -3387184252168604673L;
Dimension d = new Dimension(600, 20);

public HomeSourceTextBox() {
    setSize(d);
    setEnabled(true);
    setText("Text");

    setVisible(true);
   }
}
4

2 に答える 2

2

何をしているのかわかりませんが、JTextField もっと長くしようとしていると思います。

JTextFieldデフォルトの列数を指定するには、次のようにJTextField(int columns)コンストラクターを使用します

JTextField jtf=new JTextField(10);

また、他の人が提案しているように、特定の問題を確認できるようにSSCCEを投稿してください。

get|Minimum|Maximum| Preferred |Size一般的な注意として、またはをオーバーライドする方が常に良いset|Minimum|Maximum| Preferred |SizeのでLayoutManager、サイズを変更することはできません(LayoutIを使用していない場合は、変更することを強くお勧めします)。

私は好みます、getPreferredSize()そしてドキュメントは同意します- JTextFieldドキュメント

getPreferredSize()

このTextFieldに必要な推奨サイズの寸法を返します。ゼロ以外の列数が設定されている場合、幅は列に列幅を掛けた値に設定されます。

于 2013-01-02T19:37:30.143 に答える
0

適切な長さを設定してもうまくいかない場合...

テキストボックスが配置されているコンテナを(再)検証してみることができます。オブジェクトツリーがそこにあるように聞こえますが、キャンバスは更新されていません。コンテナ(この場合はJPanel)でrepaint()またはvalidate()(repaint()も呼び出します)を呼び出すと、強制的に再描画されます。

于 2013-01-02T19:40:18.403 に答える