Java スイング:
new GridBagConstraints(); を常に呼び出す必要がないように、GridBagConstraints を返すメソッドを作成しました。一連の変数を設定します。次のように機能します。
displayPanel.add(labelPanel, createGBC(0, 0, 2);
displayPanel.add(nosePanel, createGBC(1, 0, 3);
displayPanel.add(mainPanel, createGBC(2, 0, 3);
等..
そして、私の createGBC のコード:
private GridBagConstraints createGBC(int x, int y, int z) {
gbc = new GridBagConstraints();
gbc.gridx = x;
gbc.gridy = y;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.anchor = (x == 0) ? GridBagConstraints.EAST : GridBagConstraints.WEST;
if (z == 0) gbc.insets = new Insets(0, 0, 0, 0);
else if (z == 1) gbc.insets = new Insets(8, 0, 0, 0);
else if (z == 2) gbc.insets = new Insets(4, 4, 0, 4);
else if (z == 3) gbc.insets = new Insets(0, 2, 0, 2);
else if (z == 4) gbc.insets = new Insets(0, 0, 16, 0);
else if (z == 5) gbc.insets = new Insets(6, 0, 16, 0);
return gbc;
}
私の質問は次のとおりです。else if ステートメントを単純に大量に実行するよりも、多くの異なるインセットを処理するためのより良い方法はありますか? 私の現在の方法では、いくつかの問題が発生します。
どのインセットがどの z の値に割り当てられているか分からなくなり始めています。(読みやすく、再利用しやすくするためにリファクタリングしようとしています)。
実際には、問題 1 を悪化させる挿入プリセットをさらに追加する必要があるかもしれません。