primeira de muitas a caminho :D
meu "primeiro" programinha aqui pra aprende a usa o Swing, tem um JPanel que sobrepoem o frame com desenhos no paintComponent (que seria apenas o background, um quadrado branco e uma escrita)
ae agora eu tava querendo criar uma classe separada para inserir JFormattedTextField e butões
class Conteudo extends JPanel
{
public void paintComponent(Graphics g) ...
e é chamada pelo main por JFrame frame = new Janela();
ae logo depois da tela montada eu queria inserir esses fields então tentei criar uma outra classe chamada UI com método UITexto(); e fiz a chamada logo após.
main:
JFrame frame = new Janela();
UI.UITexto();
frame.show();
e parte dessa classe para inserir fields e um dos fields (parte porque tem mais fields):
class UI extends JPanel implements PropertyChangeListener
{
public void UITexto()
{
LabelB = new JLabel(MsgB);
FTFB = new JFormattedTextField(NumberFormat.getNumberInstance());
FTFB.setValue(b);
FTFB.setColumns(5);
FTFB.addPropertyChangeListener("value", this);
LabelB.setLabelFor(FTFB);
JPanel PainelABC = new JPanel();
PainelABC.add(LabelA);
PainelABC.add(FTFA);
PainelABC.add(LabelB);
PainelABC.add(FTFB);
Font FPedido = new Font("SansSerif",Font.BOLD,14);
PainelABC.setBackground(Color.white);
PainelABC.setFont(FPedido);
setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
add(PainelABC, BorderLayout.SOUTH);
}
public void propertyChange(PropertyChangeEvent e) {
Object source = e.getSource();
if (source == FTFA) {
a=((Number)FTFA.getValue()).doubleValue();
}
if (source == FTFB) {
b=((Number)FTFB.getValue()).doubleValue();
}
}
*declarações*
}
perguntas então: começando pelo erro de compilação que já devem ter reparado :/ "non-static method UITexto() cannot be referenced from a static context" <- ocorre no main. (Tá .. erro obvio, resumindo queria saber se tem como separar essa parte dos botões e field da classe que tem o paintComponent)
alguma idéia do que eu poderia fazer ?
e como eu posiciono esses field no lugar que eu quero (no caso, o PainelABC)? Quando essa classe era um método da conteudo ela funcionava mas eu não conseguia tirar esse painel lá de cima.
será que tem problema fazer muitas de uma vez ? :/ ...
porque instrução setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); é necessária ?
sendo que o JFrame já está prenchido com as instruções do paintComponent, colocar esse PainelABC que é um JPanel não dá problema ? :/
se quem ler puder responder qualquer pergunta, mesmo se não for todas, agradeço desde já =D