Отключить подсказку для отключенных кнопок - PullRequest
2 голосов
/ 24 июня 2011

Я работаю над Swing Gui, который имеет много кнопок.У меня есть много действий, в которых кнопки отключают и включают время от времени.Я хочу установить всплывающие подсказки только для включенных кнопок.Когда кнопка отключена, я не хочу никаких подсказок для этой кнопки.

Ответы [ 3 ]

5 голосов
/ 24 июня 2011

Я бы попробовал расширить класс Button и перегрузить getTooltip (). Что-то вроде:

public class MyButton extends JButton {
  public String getTooltip() {
     if (this.isEnabled()) {
       return super.getTooltip();
     }
     return null;
  }
}

Конечно, это зависит от Swing, использующего getTooltip, чтобы получить информацию для рисования кнопки; в любом случае, я бы попробовал.

2 голосов
/ 24 июня 2011

Добавить расширенный JButton класс:

import javax.swing.*;

public class MyButton extends JButton
{
  private String toolTip;

  @Override
  public void setToolTipText(String text)
  {
    super.setToolTipText(text);
    if (null != text) toolTip = text;
  }

  @Override
  public void setEnabled(boolean b)
  {
    super.setEnabled(b);
    super.setToolTipText(b ? toolTip : null);
  }
}

и используйте его вместо этого.

1 голос
/ 24 июня 2011

Вы должны удалить текст всплывающей подсказки.

Вы также можете создать свой собственный класс с переопределенными методами для включения / выключения и делать это автоматически.

...