Desligar TAB no JTable?

4 respostas
fredferrao

Galera tem com eu desligar a tecla TAB em um JTable??? Minha JTable não é editavel, quero apenas select a linha desejada e sair, para navegar pelas linhas gostaria de usar apenas as SETAS, e quanto estiver na linha escolhida pressionar ENTER!! entao preciso do seguinte: Desligar TAB(assim o TAB sairia da JTable) e adicionar um ActionListener para o ENTER nas linhas da table!!!

4 Respostas

thiago.correa

na verdade você teria que adicionar um KeyListener a sua Table e fazer um if para filtrar o tab!

_fs
final JTable table = new JTable( new Object[][] { { "11", "12", "13" },
				{ "21", "22", "23" } }, new Object[] { "1", "2", "3" } );
		table.addKeyListener( new KeyAdapter()
		{
			@Override
			public void keyPressed( KeyEvent e )
			{
				int keyCode = e.getKeyCode();
				if( table.isFocusOwner() && keyCode == KeyEvent.VK_TAB)
				{
					// passa o foco para o próximo componente
					table.setFocusable( false );
					table.setFocusable( true );

				}
				else if( keyCode == KeyEvent.VK_ENTER )
				{
					// chama ação
				}
			}
		} );
fredferrao

Vlw LIPE e Thiago, era exatamente o que eu procurava, na verdade era mais simples do que esperava, se eu tivesse pensado um pouco mais, hehe, é que são tantas coisa pra se pensar ao mesmo tempo!!! flw!!

thiago.correa
String[] nomes = {"Nome","Idade"};
        Object[][] values = {
                        {"thiago",new Integer(24)},
                        {"Gui",new Integer(18)}
                    };
        JTable table = new JTable(values, nomes);        
        table.addKeyListener(new KeyAdapter()  {

            public void keyPressed(KeyEvent arg0) {
                
                if ( arg0.getKeyCode() == KeyEvent.VK_TAB)
                    arg0.consume();
                else if (arg0.getKeyCode() == KeyEvent.VK_ENTER)
                    //executa a ação
                
            }
        });
Criado 16 de maio de 2006
Ultima resposta 16 de mai. de 2006
Respostas 4
Participantes 3