Я хочу показать нормальный JButton как отключенный, не устанавливая его в setEnabled (false)!Paint Swing JButton as disabled
Я просто хочу показать, что эта кнопка не включена, но если пользователь нажимает кнопку, она должна вызывать actionlistener как обычно.
Так что я сделал это:
import java.awt.Graphics;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class SwingTests {
private static void createWindow() {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
MyButton button = new MyButton("Press");
button.setEnabled(false);
panel.add(button);
frame.add(panel);
frame.setSize(200, 200);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createWindow();
}
});
}
}
class MyButton extends JButton {
private boolean enabled = false;
public MyButton(String text) {
super(text);
super.setEnabled(true);
}
@Override
protected void paintBorder(Graphics g) {
if (isEnabled())
super.paintBorder(g);
else
; // paint disabled button
}
@Override
protected void paintComponent(Graphics g) {
if (isEnabled())
super.paintComponent(g);
else
; // paint disabled button
}
@Override
public void setEnabled(boolean b) {
enabled = b;
}
@Override
public boolean isEnabled() {
return enabled;
}
}
Я "просто" нужно знать, что писать в paintComponent (г) и paintBorder (г).
* «Я просто хочу, чтобы показать, что эта кнопка не включена, но если пользователь запихивает кнопку она должна вызывать ActionListener как обычно.» * Звук как еще один «непригодного GUI» в процессе создания. Что такое прецедент, когда это действительно имеет смысл? * –
* «кнопка не включена, но если пользователь нажимает кнопку, она должна вызывать actionlistener как обычно» * Предполагается ли, что кнопка является пасхальным яйцом? Я не знаю, чего вы пытаетесь достичь. –
Я знаю, что это против дизайна GUI Propper с «Звуком как еще один« непригодный графический интерфейс »при создании« вы частично правы! Но я хочу это, потому что если он отключен, и пользователь нажимает кнопку, я показываю сигнал тревоги, почему эта кнопка отключена! – Nikolai