–> Tem como (em swing) bloquear uma janela? Por exemplo tenho a frame principal que tem um menu. Este gera uma outra janela de configurações, mas eu queria que a janela principal ficasse bloqueada enquanto a de settings está aberta, pra impedir o usuário de usar a janela principal.
–> Quando eu salvo um arquivo com JFileChooser, ele não salva nenhuma extensão. Tem como configurar pra ele salvar automaticamente em uma extensão, pq se não tenho que digitar a extensão toda vez que for salvar.
–> Por último: Como faço pra gerar um evento de duplo clique em uma LINHA INTEIRA da JTable? Tipo, cliquei na linha da tabela, queria gerar uma janela pra editar o conteúdo. Tem como?
Sim, basta usar um jdialog pra fazer essa janela de settings, tranforma-lá em modal, colocar o Jframe como parent e pronto.
–> Você precisa fazer isso manualmente mesmo, pois não há forma nativa de colocar extensões no JFileChooser. Recupere o arquivo que o usuário digitou e mude a extensão toda vez que for salvar
–> ta mas como faço pra mudar a extensão? tem que fazer um getName().endsWith(".extensao") e depois? não tem um setName só um renameTo que recebe um file mas não entendi como funciona
–> eu to usando JOptionPane pra pegar input. mas eu preciso pegar uma data e eu não queria pegar um long e ter que ficar validando pelo mod (me parece gambiarra) por isso que eu queria fazer um dialog com um campo frmatado e tal. só que eu não consigo definir o tamanho do campo na tela. tipo qualquer layout manager bota o TextField do tamanho do panel inteiro. tem como eu fazer isso? tipo definir o tamanho exato do campo de texto e a posição exata.
public class MeuDialog extends JDialog {
//atributos
public MeuDialog(JFrame frame) {
super(frame);
setModal(true);
//construção da classe parecido com o JFrame
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);//ou JDialog.HIDE_ON_CLOSE
setResizeble(false);
pack();
setVisible(true);
}
}
–> Tem como (em swing) bloquear uma janela? Por exemplo tenho a frame principal que tem um menu. Este gera uma outra janela de configurações, mas eu queria que a janela principal ficasse bloqueada enquanto a de settings está aberta, pra impedir o usuário de usar a janela principal.
–> Quando eu salvo um arquivo com JFileChooser, ele não salva nenhuma extensão. Tem como configurar pra ele salvar automaticamente em uma extensão, pq se não tenho que digitar a extensão toda vez que for salvar.
–> Por último: Como faço pra gerar um evento de duplo clique em uma LINHA INTEIRA da JTable? Tipo, cliquei na linha da tabela, queria gerar uma janela pra editar o conteúdo. Tem como?[/quote]
Opa!
–> Já responderam;
–> Também responderam;
–> Você pode criar um MouseListener para a sua tabela. Toda vez que verificar dois cliques nela, você valida se houve linha selecionada e, se satisfez a condição, recupera o objeto da linha e passa para o seu formulário!
private class EdicaoRegistroMouseListener implements MouseListener {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
if (table.getSelectedRow() != -1) { // se houve linha selecionada...
// Chame o método que retorna o objeto de uma determinada linha.
// O exemplo que eu fiz chama "get", mas mude para a sua assinatura
// do método.
SuaEntidade entidade = seuTableModel.get(table.getSelectedRow());
// Cria uma instância do seu Dialog de Edição. Como parâmetro, passei
// para o construtor o objeto da linha selecionada na sua JTable para que
// você processe a edição dele no formulário.
SeuDialogDeEdicao formEdicao = new SeuDialogDeEdicao(entidade);
// Exibo na tela!
formEdicao.showDialog();
}
}
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
só uma coisa com diálogo de edição tu quer dizer o que. tipo to com dificuldades de fazer os frames (não gosto de fazer cxom netbeans, código muito sujo e tal) to com dificuldade no layout, organizar os componentes na tela e tal.
Geralmente utilizo tres tipos de layout
GridLayout:
Components são organizados como tabela
FlowLayout:
Components são organizados em fila horizontal
BorderLayout:
Components são organizados na borda com um component central
Com esses 3 ja da pra fazer quase tudo, no caso do BorderLayout, é necessario diser a posição:
add(BorderLayout.CENTER, component);//Centro do container
add(BorderLayout.EAST, component);//Direita do container
add(BorderLayout.WEST, component);//Esquerda do container
add(BorderLayout.NORTH, component);//Cima do container
add(BorderLayout.SOUTH, component);//Baixo do container
e os outros dois: add(component)