Olá:
Suponham o seguinte Componente:
class JTextSlider extends JComponent {
private JFormattedTextField textField;
private JSlider slider;
// Construtor:
protected JTextSlider() {
super();
// Construo os componentes internos
...
// Adiciono os componentes internos
this.add(textField);
this.add(slider);
}
// Outros Métodos
...
}
Agora a classe de teste:
public class JShowTextSlider extends JFrame {
private JTextSlider textSlider;
// Construtor
public JShowIntTextSlider() {
super("Shows IntTextSlider");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
textSlider = new JTextSlider();
this.getContentPane().add(textSlider);
this.setSize(300, 200);
}
public static void main(String[] args) {
JShowIntTextSlider frame = new JShowIntTextSlider();
frame.pack();
frame.setVisible(true);
}
}
Agora a parte estranha: Quando rodo o teste, o frame aparece sem o meu componente. Tentei ainda colocar a instrução setVisible(true) no final do construtor do meu componente, mas não deu certo. Só consegui exibí-lo quando JTextSlider passou a extender JPanel e não mais JComponent.
:arrow: Minha dúvida é: É assim mesmo? Não há jeito de exibir o componente sendo ele derivado diretamente de JComponent?
Grato,