Duvida básica inserindo JFormattedT

0 respostas
CrOnNoS

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

a primeira classe que citei tá assim:
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

Criado 29 de novembro de 2007
Respostas 0
Participantes 1