0

同様の要素がいくつかある GUI アプリケーションを作成しているため、コードが繰り返されます。変数のみが異なります。たとえば、次のようなものがあります。

lenPan2 = new JPanel();
lenPan2.setLayout(new GridBagLayout());

bTitled2 = BorderFactory.createTitledBorder(bGreyLine, "Example", TitledBorder.LEFT, TitledBorder.TOP);
lenPan2.setBorder(bTitled2);

tVllResult = new JTextField("");
tVllResult.setColumns(10);
tVllResult.setFont(defFont);
lenPan2.add(tVllResult, new GBC(10, 2, 2, 1));

String[] vllOutUnits = {"Unit 0", "Unit 1", "Unit 2", "Unit 3", "Unit 4"};
cVllOutUnit = new JComboBox<String>(vllOutUnits);
cVllOutUnit.setSelectedIndex(1);
cVllOutUnit.setPreferredSize(new Dimension(240, 25));
cVllOutUnit.setFont(defFont);
lenPan2.add(cVllOutUnit, new GBC(12, 2, 4, 1));
cVllOutUnit.addActionListener(this);

この場合、変数は次のとおりです: lenPan2、bTitled2、tVllResult、vllOutUnitscVllOutUnit、ボーダー タイトル。このすべてのデータを含み、引数として変数のみが与えられるメソッドを何らかの方法で作成できますか?

私は次のようなことを考えていました:

private static insertElement(JPanel jp, BorderFactory bf, JTextField jtf, String bt, String[] vll, JComboBox cvl)
{
this.jp = jp;
this.bf = bf;
(...)

jp = new JPanel();
jp.setLayout(new GridBagLayout());

bf = BorderFactory.createTitledBorder(bGreyLine, bt, TitledBorder.LEFT, TitledBorder.TOP);
jp.setBorder(bf);
(...)

呼び出し元:

insertElement(lenPan2, bTitled2, tVllResult, Example, {"Unit 0", "Unit 1", "Unit 2", "Unit 3", "Unit 4"}, cVllOutUnit);

それは正しいでしょうか、それとも他の方法をお勧めしますか?

4

1 に答える 1

3

はい、確かにヘルパー メソッドを作成して、GUI の作成を行うことができます。

コードが読みやすくなりますか? もちろん。

コードの保守が容易になりますか? もちろん。

コードを高速化 (つまり、「最適化」) しますか? いいえ。

于 2012-10-15T22:11:04.900 に答える