私の CSE 205 (Java プログラミング 2) クラスでは、非常に単純な GUI アプレットを設計する必要があります。私は Swing にかなり精通しており、以前にいくつかの自分のプロジェクトで Swing を使用していました。私はプログラムをほとんど問題なく設計しました。Eclipse から実行すると、私のコンピューターで完璧に見えます。
しかし、それをオンラインで送信し、ブラウザで実行すると、UI がひどくおかしくなり、デフォルトに戻ります。
シンプルなため、GridBagLayout の使用に慣れてきました。それが私がここで使っているものです。クラス CreatePanel と SelectPanel (最初の画像に見られる) は両方とも JPanel を拡張します (私の教授によると)。以下を使用してそれぞれを設定します。
this.setLayout(new GridBagLayout());
そして、それぞれのコンポーネントは次のようになります。
//Call the method addItem() to add the create button to the panel
addItem(this, createB,0,2,2,1,defaultInset,GridBagConstraints.CENTER);
//-------
public void addItem(JPanel p, JComponent c, int x, int y, int width, int height, int[] inset, int align)
{
GridBagConstraints gc = new GridBagConstraints();
gc.gridx = x;
gc.gridy = y;
gc.gridwidth = width;
gc.gridheight = height;
gc.weightx = 0;
gc.weighty = 0;
gc.insets = new Insets(inset[0],inset[1],inset[2],inset[3]);
gc.anchor = align;
gc.fill = GridBagConstraints.NONE;
p.add(c, gc);
}
誰が何が起こっているのかについて何か考えがありますか? 私の時間の半分以上がレイアウトを正しく表示するのに費やされたことを考えると、簡単な修正が欲しい. 必要に応じて、さらにコードを投稿できます。提案をありがとう。
- 編集 -
@ MadProgrammer の提案に基づいて、少し遊んでみました。問題がどこにあるかをある程度絞り込んだと思います。
これは、JTextField のサイズをラベル「Enter a Pet Type:
petTypeTF = new JTextField("");
petTypeTF.setPreferredSize(new Dimension(125, 60));
列数を設定するなど、コードを他のものに変更すると、次のようになります。
petTypeTF = new JTextField("",12);
petTypeTF.setPreferredSize(new Dimension(125, 60));
オンラインで送信したときと同じように見える UI が表示されます。列数の設定と関係があるようです。これは誰かのためにそれを絞り込むのに役立ちますか?