私が現在取り組んでいるプロジェクトには、Jlabel を介して表示したい情報がいくつかあります。GUIの他の場所にいくつかのボタンとテキストフィールドがあり、JLabelを更新したいのですが、テキストが変更されないか、起動時に更新されます。
このサイトの他の質問で提案されているように、並行処理を使用してラベルを更新しようとしましたが、ラベルの更新に失敗しました。並行性は、必要に応じてテキストフィールドとコンボボックスを更新することで機能します。
私のコードの現在の反復は次のようになります。
JFrame
//// This is a snippet from the JFrame
public void start()
{
this.setSize(900, 700);
this.setVisible(true);
devicePanel.populateDeviceDefinitions();
updateServiceInfo();
updateCommandInfo();
startUpdateTimer();
}
public void updateServiceInfo()
{
EventService service = JetstreamApp.getService();
generalPanel.updateServiceInfo(service.getBaseUri(),
service.getAccessKey(), String.valueOf(service.getWindowTime()));
}
public void updateCommandInfo()
{
JetstreamServiceClient client = JetstreamApp.getClient();
generalPanel.updateCommandInfo(client.getBaseUri(), client.getAccessKey());
}
generalPanel という名前の JPanel
//// This is a snippet from the generalPanel
//// All of the variables in the following code are JLabels
public void updateServiceInfo(String baseUrl, String accessKey,
String windowTime)
{
serviceUrl.setText(baseUrl);
serviceAccessKey.setText(accessKey);
serviceWindowTime.setText(windowTime);
}
public void updateCommandInfo(String baseUrl, String accessKey)
{
commandUrl.setText(baseUrl);
commandAccessKey.setText(accessKey);
}
ラベルはテキストの空の文字列で始まり、ウィンドウの開始時に、関連するソースから情報を取得して更新されることを意図しています。JLabels が情報を更新したり表示したりしない理由を教えてください。