olá a todos, tava aqui estudando/treinando com java swing, tava fazendo um menu onde supostamente haverá vários botões, então criei uma classe para os botões, dai surgiu a duvida, para cada botão criado eu teria q instanciar a classe do botões setar o texto e a posição onde ele vai ficar, o que eu queria saber é como eu poderia fazer para setar automaticamente a posição já que a ideia é que fiquem alinhados podendo alternar entre vertical ou horizontal com um pequeno espaço entre eles, tipo, ou todos vertical ou todos horizontal, e como instanciar todos de uma vez sem ter q instanciar um por um, tava pensando em tipo um array contendo os textos de cada botão e dai fazer um loop mas não sei exatamente como faz isso em java
fiz 3 classes para o teste atual vou por o código a baixo:
classe principal:
package visual;
import utilitarios.Tamanhos;
public class FrameGeral extends javax.swing.JFrame{
private static final long serialVersionUID = 1L;
Tamanhos tam = new Tamanhos();
Botoes btnMenu = new Botoes(1);
public FrameGeral() {
this.setSize(tam.tamanhoTela());
this.setLayout(null);
this.add(btnMenu);
}
public static void main(String[] args) {
new FrameGeral().setVisible(true);
}
}
classe que define tamanhos:
package utilitarios;
import java.awt.Dimension;
import java.awt.Toolkit;
public class Tamanhos {
public Dimension tamanhoTela() {
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension tamTela = kit.getScreenSize();
return tamTela;
}
public Dimension tamanhoBtn(double pctBtn) {
int larg = (int) (pctBtn * largura);
int alt = (int) (pctBtn * altura);
if(larg > 300) {
larg = 300;
}
if(alt > 50) {
alt = 50;
}
Dimension tamBtn = new Dimension(larg,alt);
return tamBtn;
}
private int largura = tamanhoTela().width;
private int altura = tamanhoTela().height;
}
classe dos botões:
package visual;
import java.awt.Color;
import utilitarios.Tamanhos;
public class Botoes extends javax.swing.JButton {
private static final long serialVersionUID = 1L;
Tamanhos tam = new Tamanhos();
public Botoes(int tipo) {
this.setSize(tam.tamanhoBtn(0.3));
this.setLayout(null);
defineLayout(tipo);
}
private javax.swing.JButton defineLayout(int tipo){
switch(tipo) {
case 0:
this.setBackground(new Color(0,0,0));
case 1:
this.setBackground(new Color(255,0,45));
}
return this;
}
}
Eu vou fazendo as coisas e tendo novas ideias logo em seguida mas sou iniciante no java e não sei fazer muita coisa kkk então se tiverem alguma dica sobre o código atual ficarei grato em saber