GUIウィジェットを整理しようとしているJavaFXアプリケーションで次のプライベートメンバーを初期化する必要がありますが、正しい構文がわかりません。正しい構文を教えてください:
EnumMap に使用している列挙型は次のとおりです
enum Connection {
Connection1,
Connection2,
Connection3,
Connection4;
}
これは、サービス名キーに基づいてこのマップまたはEnumMapsで整理しようとしているウィジェットの選択です。したがって、次の 4 つのチェックボックスとラベルのリストは一緒に属します (サービス 2 などに同様の JavaFX ウィジェットがあります。
@FXML
private CheckBox mService1CheckBox1;
@FXML
private CheckBox mService1CheckBox2;
@FXML
private CheckBox mService1CheckBox3;
@FXML
private CheckBox mService1CheckBox4;
@FXML
private Label mService1Label1;
@FXML
private Label mService1Label1;
@FXML
private Label mService1Label1;
@FXML
private Label mService1Label1;
これは、JavaFX ウィジェットで初期化しようとしているプライベート メンバーです。
private Map<String, EnumMap<Connection, AbstractMap.SimpleEntry<Label,
CheckBox>>> mWidgetInfo;
トップ レベルの空の mServiceWidgetMap を次のように初期化できます。
mWidgetInfo= new HashMap<>();
そして、EnumMaps を new EnumMap<>(Connection.class); として初期化する必要があることを知っています。しかし、これらの EnumMaps の値のサイズにウィジェットのペアを配置する必要もあり、これを行う方法について混乱しています。
ただし、enumMap 値のペアを初期化する方法がわかりません。構文のヘルプは大歓迎です。
編集 しばらく苦労した後、私は次のことを思いつきましたが、確かに、二重ブレースの初期化やその他の冗長なアプローチのようなより単純なアプローチが必要です。
private void initializeServiceHeartbeatTab() {
// @JC Todo - dynamically create base on CSV rows
// Map<String, EnumMap<Connection, SimpleEntry<Label, CheckBox>>>
EnumMap<Connection, SimpleEntry<Label, CheckBox>> service1Info =
new EnumMap<>(Connection.class);
SimpleEntry<Label, CheckBox> pair1 = new SimpleEntry<>(
mService1Label1, mService1CheckBox1);
SimpleEntry<Label, CheckBox> pair2 = new SimpleEntry<>(
mService1Label2, mService1CheckBox2);
SimpleEntry<Label, CheckBox> pair3 = new SimpleEntry<>(
mService1Label3, mService1CheckBox3);
SimpleEntry<Label, CheckBox> pair4 = new SimpleEntry<>(
mService1Label4, mService1CheckBox4);
service1Info.put(Connection.Connection1, pair1);
service1Info.put(Connection.Connection1, pair2);
service1Info.put(Connection.Connection1, pair3);
service1Info.put(Connection.Connection1, pair4);
EnumMap<Connection, SimpleEntry<Label, CheckBox>> service2Info =
new EnumMap<>(Connection.class);
pair1 = new SimpleEntry<>(mService2Label1, mService2CheckBox1);
pair2 = new SimpleEntry<>(mService2Label2, mService2CheckBox2);
pair3 = new SimpleEntry<>(mService2Label3, mService2CheckBox3);
pair4 = new SimpleEntry<>(mService2Label4, mService2CheckBox4);
service2Info.put(Connection.Connection1, pair1);
service2Info.put(Connection.Connection1, pair2);
service2Info.put(Connection.Connection1, pair3);
service2Info.put(Connection.Connection1, pair4);
EnumMap<Connection, SimpleEntry<Label, CheckBox>> service2Info =
new EnumMap<>(Connection.class);
pair1 = new SimpleEntry<>(mService3Label1, mService3CheckBox1);
pair2 = new SimpleEntry<>(mService3Label2, mService3CheckBox2);
pair3 = new SimpleEntry<>(mService3Label3, mService3CheckBox3);
pair4 = new SimpleEntry<>(mService3Label4, mService3CheckBox4);
service3Info.put(Connection.Connection1, pair1);
service3Info.put(Connection.Connection1, pair2);
service3Info.put(Connection.Connection1, pair3);
service3Info.put(Connection.Connection1, pair4);
mWidgetInfo = new HashMap<>();
mWidgetInfo.put("albf", service1Info);
mWidgetInfo.put("fms1", service2Info);
mWidgetInfo.put("fms2", service3Info);
}