JTextField 'dentro' de uma borda

7 respostas
D

bom dia pessoal, é possivel criar uma borda q tenha na sua parte de cima um objeto JTextField onde possa ser feita a digitaçao de dados??

se sim, podem me dar a direçao, pois ate consegui colocar esse objeto na borda já, mas ele nao fica editavel, nao sei prq e nao estou conseguindo avançar mais…

[]´s

7 Respostas

mvargens

Você pode explicar melhor o que seria essa borda?
Se esta falando em traçar um retângulo ou quadrado para separar campos dentro da tela, a melhor maneira que conheço de fazer isso é criar um JPanel, setar a borda dele, e colocar os objetos dentro dele. Se não for isso por favor de mais detalhes.

71C4700

Desculpa não entendi bem seu problema…

Vc deseja colocar um JTextField dentro de uma borda?
Ou seria colocar uma Borda em um JTextField?

Desta maneira vc pode colocar uma borda, somente com uma linha vermelha, a um JTextField

Descreva melhor seu problema…

Abraços…

D

opa, ok, vou tentar descrever melhor … o que quero eh um TextField em uma borda… ou seja:

existe o componente chamado JXTaskPane do swingX, correto? (ia postar o link aki para ele direto mas parece q tah fora o site)
esse componente se expande e se retrai conforme eu clico na sua barra superior (qe na verdade eh uma borda), correto?
essa barra superior dele pode ter um icone, um label e tem mais um icon com as flechas que indica o estado (componente expandido ou retraido).

o que eu queria era colocar no lugar do label do titulo ali um textField, para que eu possa digitar e caso eu pressionasse o icone para expandir entao eu mostraria algumas outras informacoes de configuracao… O problema eh que essa parte onde tem o label e o icon ali eh uma borda (um Objeto q extende Border)… De inicio achei que seria tranquilo substituir um label ali pelo textField que quero, mas nao esta sendo.

seria algo semelhante a isso o que quero quando digo colocar um textField em uma borda:: http://www.javalobby.org/java/forums/t33048.html , soh que no lugar do checkBox o textField, e queria mais a funcionalidade de expandi e retrai do JXTaskPane…

atualmente estou tentando modificar o codigo do link postado acima, mas nao esta dando certo… estou tentando tb outra linha de raciocinio que é colocar o TaskPane com borda null (para ter apenas o lance de expansao do componente) e colocar em cima dele um Panel com um textField e um botao… por enquanto nao consegui obter o funcionamento que quero em nenhuma ocasiao …

espero que tenha ficado mais claro o que quero, agradeço quem puder ajudar ae…
[]´s

mvargens

Cara, não conhecia o componente, mas já vi ele funcionando. E pelo desenho dele acho que isso não é possível não em. Você já viu algum aplicativo que utiliza ele fazendo o que você quer?
De qualquer forma não posso ajudar, mas boa sorte aí. Se conseguir posta ai como você fez.

71C4700

Pelo codigo que vc postou a cima, consegui colocar um JTextField e um JButton…

final JPanel proxyPanel = new JPanel();
        proxyPanel.add(new JLabel("Proxy Host: "));
        proxyPanel.add(new JTextField("proxy.xyz.com"));
        proxyPanel.add(new JLabel("  Proxy Port"));
        proxyPanel.add(new JTextField("8080"));

        final JButton field = new JButton("Alguma cloisa");
        // final JTextField = new JTextField("Alguma coisa");
       // field.setEditable(true);
        field.addMouseListener(new MouseAdapter() {

            @Override
            public void mouseClicked(MouseEvent e) {
                System.out.println("Valor : "+field.getText());
            }

        });
        ComponentTitledBorder componentBorder = new ComponentTitledBorder(field, proxyPanel, BorderFactory.createEtchedBorder());
        proxyPanel.setBorder(componentBorder);
        JFrame frame = new JFrame("ComponentTitledBorder - [email removido]");
        Container contents = frame.getContentPane();
        contents.setLayout(new FlowLayout());
        contents.add(proxyPanel);
        frame.pack();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

Quanto a outra classe continua igual,não alterei nada nela.

Veja se te ajuda…

mvargens

71C4700:
Pelo codigo que vc postou a cima, consegui colocar um JTextField e um JButton…

final JPanel proxyPanel = new JPanel();
        proxyPanel.add(new JLabel("Proxy Host: "));
        proxyPanel.add(new JTextField("proxy.xyz.com"));
        proxyPanel.add(new JLabel("  Proxy Port"));
        proxyPanel.add(new JTextField("8080"));

        final JButton field = new JButton("Alguma cloisa");
        // final JTextField = new JTextField("Alguma coisa");
       // field.setEditable(true);
        field.addMouseListener(new MouseAdapter() {

            @Override
            public void mouseClicked(MouseEvent e) {
                System.out.println("Valor : "+field.getText());
            }

        });
        ComponentTitledBorder componentBorder = new ComponentTitledBorder(field, proxyPanel, BorderFactory.createEtchedBorder());
        proxyPanel.setBorder(componentBorder);
        JFrame frame = new JFrame("ComponentTitledBorder - [email removido]");
        Container contents = frame.getContentPane();
        contents.setLayout(new FlowLayout());
        contents.add(proxyPanel);
        frame.pack();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

Quanto a outra classe continua igual,não alterei nada nela.

Veja se te ajuda…

Ele quer fazer isso no JXTaskPane

D

opa 71C4700, entao cara, tipo essa parte ali que vc postou, eu consegui tb, mas nao sei se vc chegou a tentar digitar algo no TextField, tipo eu nao consegui isso… parece q na borda eu consigo captura td os eventos de mouse, o que faz com que um checkBox, ou um Button acabem funcionando blzinha, mas quando se trata dum objeto q eu quero digitar como o TextField, ai nao consigo (pelo menos nao consegui testando aki e nao consegui tb ali com o que vc postou) … entende? tipo, nao sei o prq bem certo de nao me permitir digitar ali quando o textField está em um border, tentei os setEditable, enable e nada…

bom, enfim … vlw pela ajuda ai moçada, vou continuar a peleia aqui e quando eu conseguir eu posto aqui como fiz e uns printScreen da funcionalidade em tela, assim caso alguem venha a ter esse mesmo problema no futuro jah tem um ponto de partida :slight_smile:

[]´s

obs: se alguem conseguir antes que eu pode postar ae tb pra me ajuda :slight_smile:

Criado 19 de maio de 2009
Ultima resposta 19 de mai. de 2009
Respostas 7
Participantes 3