Имеется вот такой код, если его переписать на Swing, баг так-же проявляется. Вообще-то проект на Свинге, этим кодом я проверял его наличие в AWT.
Проблема в том, что после того, как выполнится лисенер кнопки, фокус останется на второй кнопке, которая отключена, и останется он там намертво, никакими Tab/Sfift+Tab/Ctrl+tab/... его оттуда не вытащить.
package misc;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class AwtTest {
/**
* @param args
*/
static Button b1,b2;
public static void CaSGUI()
{
Frame f = new Frame();
f.setLayout(new FlowLayout());
b1 = new Button("B1");
b2 = new Button("B2");
f.add(b1);
f.add(b2);
f.add(new Button("B3"));
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
b1.setEnabled(false);
b2.setEnabled(false);
}});
f.pack();
f.setVisible(true);
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{
System.exit(0);
}});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
CaSGUI();
}});
}
}
Забавно, но если сделать так:
public void actionPerformed(ActionEvent e) {
b1.setEnabled(false);
b1.setFocusable(false);
b2.setEnabled(false);
b2.setFocusable(false);
}});
бага не будет. Можно ещё отключать в обратном порядке. Есть ли ещё пути решения, так как эти - не всегда приемлимы. В документации по дефалтной Focus Traversal Policy сказано:
> The Component must be visible, displayable, and enabled to be accepted.
Врут, получается. Должно и без setFocusable() работать. Java с 1.4 по 1.6.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Почему кнопка на весь фрейм? (2020)
- Форум WebSocketServer и Timer Java (2018)
- Форум неработает обновление данных в таблице [java] (2012)
- Форум Java, swing, GridBagLayout (2008)
- Форум Кнопка не хочет занять место по коду? (2020)
- Форум JRE/JDK + Fedora + кириллица = Ж... ? (2008)
- Форум Декораторы в Java для listener'ов (2015)
- Форум Дошлифовать Swing GUI desktop application (2016)
- Форум Помогите с EJB под WildFly (2015)
- Форум Крешится да и всё тут (2012)