E ai pessoal!
Meu primeiro post, estou recém aprendendo Java e muita dúvida tirei aqui, mas agora preciso de um help!!
Preciso de um botão que gera outro botão idêntico ao ser clicado (vou lhes poupar dos detalhes e porquês).
Para isso tenho o código abaixo, que funciona:
public class Painel extends javax.swing.JFrame {
Painel () {
... // Layout, closeOperation, setVisible, setSize, etc...
add(new Botao());
}
class Botao extends javax.swing.JButton {
Painel essePainel = Painel.this;
Botao () {
addActionListener((ActionEvent e) -> {
essePainel.add(new Botao()); //se quem cria o novo botão é esse add
setText("texto qualquer"); //porque esse setText??
});
}
}
}
Preciso colocar aquele setText ali pra funcionar, se não simplesmente não cria novos botões!
Se eu deixo sem ele simplesmente não funciona!!! Como me livro desse setText?
testei substituir o setText por setBackground e alguns outros métodos, nada…
testei criar outros objetos além de JButton, nada…
não posso usar um setText("") vazio, tem que ter algum caractere ao menos
Creio que não é o caso porque o setText está colocando o texto no botão que clico, e não no que é criado. Quando clico, o botão novo que aparece vem sem texto algum, o que cliquei que aparece o texto.
preciso da implementação, esse aí é um resumo do código apenas, no programa que estou montando o construtor desse botão é maior
de qualquer forma, ainda acabo usando o setText, não queria precisar dele
public class Painel extends JPanel {
/* Não é necessário informar o caminho inteiro da herança, importa todo o swing. E seria interessante
criar um JFrame dentro da classe que contém o método main e ai você cria essa classe Painel extendendo JPanel */
public Painel () {
inicializarComponentes();
definirEventos();
}
public void inicializarComponentes() {
//Title, layout, etc
variabelBotao = new JButton("Texto do botão");
variavelBotao.setBounds(x, x, x, x); // Define onde ela vai ficar se o layout é null
this.add(variavelBotao);
public void definirEventos() {
//Aqui vai o código dos eventos do botão