私はこの単純な JPanel サブクラスを作成しました:
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class SearchTextField extends JPanel
{
private ImageIcon image;
private JTextField textField;
SearchTextField ()
{
this.setLayout(new FlowLayout());
image = new ImageIcon ("img/search.png");
textField = new JTextField ("test");
JLabel label = new JLabel(image);
this.add(label,FlowLayout.LEFT);
this.add(textField, FlowLayout.CENTER);
this.setPreferredSize(new Dimension (250,50));
textField.setPreferredSize(new Dimension (this.getWidth() - 50, this.getHeight()));
}
}
問題はthis.getWidth()
、JPanel と JTextArea の両方のメソッドが 0 を返すことです。コンポーネントがまだ初期化されていないようです。それを修正することについて何か考えはありますか?ありがとう!