私は学校の割り当てにすべてのGUIを手作業で記述する必要があります。私はJavaで作業していて、GridBagLayoutを使用しています。私は、同じGridBagConstraintインスタンスを再利用するのではなく、各コンポーネントが独自のGridBagConstraintインスタンスを持つようにすることをお勧めします。したがって、各コンポーネントが独自のものを取得し、それぞれのコンポーネントの塗りつぶし、位置、およびインセットを指定すると、GUI用のコード行だけが表示されます。コード組織標準
この特定の割り当て私はBorderLayoutとその中に座る2つの他のペインにメインペインを持っています。 1つは出力情報のための表示領域である別のBorderLayoutであり、もう1つはユーザが複数のファイルを選択して入力に使用するためのラベル、テキストフィールド、ボタンです。私はそれを分解し、各ペインのすべてのコードを独自のJComponentインスタンスに配置しました(正しい用語であるかどうかはわかりません)。だから、コードは次のようになります。
protected JComponent inputPaneComponent() {
all code for the inputPane goes here
}
しかし、私は、各コンポーネントに対して複数ののGridBagConstraintsと仕様を用いて、上記のようなコードの長いグループにつながります。私は各コンポーネントの間に空の行を置いて分割しなければならないかもしれません。それとも、長い行のスタック?
これはまだすべてのコーディングを完了していないサンプルです。このような何か:
protected JComponent inputPaneComponent() {
JPanel inputPane = new JPanel();
inputPane.setLayout(new GridBagLayout());
inputPane.setBorder(BorderFactory.createTitledBorder("Input Files:"));
GridBagConstraints c0 = new GridBagConstraints();
c0.fill = GridBagConstraints.HORIZONTAL;
c0.gridx = 0;
c0.gridy = 0;
c0.insets = new Insets(10, 10, 0, 0);
inputPane.add(nameLabel, c0);
GridBagConstraints c1 = new GridBagConstraints();
c1.fill = GridBagConstraints.HORIZONTAL;
c1.gridx = 1;
c1.gridy = 0;
c1.insets = new Insets(10, 10, 0, 0);
inputPane.add(nameFileTextField, c1);
GridBagConstraints c2 = new GridBagConstraints();
c2.fill = GridBagConstraints.HORIZONTAL;
c2.gridx = 2;
c2.gridy = 0;
c2.insets = new Insets(10, 10, 0, 0);
inputPane.add(nameFileButton, c2);
return inputPane;
}
またはこの:
protected JComponent inputPaneComponent() {
// Set title, layout, and exit condition.
JPanel inputPane = new JPanel();
inputPane.setLayout(new GridBagLayout());
inputPane.setBorder(BorderFactory.createTitledBorder("Input Files:"));
// Create and configure name label.
JLabel nameLabel = new JLabel("Names File:");
GridBagConstraints c0 = new GridBagConstraints();
c0.fill = GridBagConstraints.HORIZONTAL;
c0.gridx = 0;
c0.gridy = 0;
c0.insets = new Insets(10, 10, 0, 0);
inputPane.add(nameLabel, c0);
// Create and configure name file textfield.
JTextField nameFileTextField = new JTextField(60);
GridBagConstraints c1 = new GridBagConstraints();
c1.fill = GridBagConstraints.HORIZONTAL;
c1.gridx = 1;
c1.gridy = 0;
c1.insets = new Insets(10, 10, 0, 0);
inputPane.add(nameFileTextField, c1);
// Create and configure name file button.
JButton nameFileButton = new JButton("Browse");
GridBagConstraints c2 = new GridBagConstraints();
c2.fill = GridBagConstraints.HORIZONTAL;
c2.gridx = 2;
c2.gridy = 0;
c2.insets = new Insets(10, 10, 0, 0);
inputPane.add(nameFileButton, c2);
return inputPane;
}
読みやすい私にように私は、後者を好むが、それは長さに追加しないと私は経験していないんだと標準が何であるか知りたい
ご協力ありがとうございます。私はこのフォーラムのルールの中にいたいと思います。これは私の最初の投稿です。
一般的に、長い方法は、彼らは、保守/簡単にサポート可能ではありませんので、あなたができるように、意味のある名前を持つ小さな方法にはさらに、あなたの長い方法をrefactor
する必要があるため、マット
最後に、それはあなたのコードであり、機能は最も重要な部分です。しかし、あなたの質問は意見に基づいていますので、[トピックとみなされるもの](http://stackoverflow.com/help/on-topic)をお読みください。 –
読みやすく、わかりやすいメンテナンス性が向上し、常に良好です。あなたが示した2番目のスニペットは最初のスニペットよりはるかに優れています。もうひとつの良い選択肢は、すべてのGridBagConstraints関連のコードを独自のメソッドに入れることです。おそらく、 'private void addToPanel(JPanelパネル、JComponent item、int gridx、int gridy)のようなシグネチャを持つでしょうか。 –