私はユーザーがトグルボタンを使用して座席を予約できるように、JavaスイングでGUIを作成しようとしています。 Clickイベントが機能しているかどうかをテストするために、最初はデフォルトのボタンカラーがあります。ボタンは予約済みであることを示すために赤色になり、未予約であることを示すために黄色に変わります。JavaスイングのJToggleButtonはisSelected()メソッドを認識しませんか?
はここ
@Override
public void actionPerformed(ActionEvent e) {
GoldSeat seat = (GoldSeat)e.getSource();
if(seat.isSelected()){
seat.setBackground(Color.red);
}
else
{
seat.setBackground(Color.yellow);
}
}
GoldSeatは、単にJToggleButtonの派生クラスである私のactionPerformedメソッドです。何らかの理由で、ボタンをクリックすると、赤色に変わらず(デフォルトの灰色に変わります)、もう一度クリックすると黄色に変わります。つまり、ボタンの「真」または「オン」の状態は機能していないように見えますが、「偽」があります。なぜisSelected()が正しく機能していないのかわかりません。
これを解決する方法はありますか?
編集:私は簡単なドラッグを使用して、その上に1 JToggleButtonとともに迅速たJFrameを投げ、このコードを生成Netbeansののインタフェースをドロップ:
jToggleButton1 = new javax.swing.JToggleButton();
jToggleButton1.setText("jToggleButton1");
jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jToggleButton1ActionPerformed(evt);
}
});
とアクションイベント:
private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if(jToggleButton1.isSelected()){
jToggleButton1.setBackground(Color.red);
}else {
jToggleButton1.setBackground(Color.yellow);
}
}
これは私が何をしたいのかを実行しますが、上に投稿した派生クラスで再作成することはできません。私自身のコードで何か間違っているのですか?
'私は私自身に何かをしていますコード? ' - 多分間違っていないかもしれないが、違う。私はすでにこれがLAFの問題だと提案しました。おそらく、2つのフレームが別のLAFを使用していますか?いずれにしても、コードのいくつかのランダムな行に基づいて、間違っていることを判断することはできません。 – camickr