Você está aqui: Java ::: Classes e Componentes ::: JTable |
Ordenar os dados de uma JTable clicando nos títulos das colunas (usando Java SE 6)Quantidade de visualizações: 14828 vezes |
/* Este exemplo mostra como ordenar as colunas de uma JTable clicando nos títulos das colunas desejadas. Necessário Java SE 6 ou superior. */ import javax.swing.*; import java.awt.*; import javax.swing.table.*; public class Estudos extends JFrame{ int linha, coluna; public Estudos(){ super("JTable"); TableModel modelo = createTableModel(); JTable tabela = new JTable(modelo); tabela.setPreferredScrollableViewportSize(new Dimension(350, 100)); // Instala o TableRowSorter. TableRowSorter<TableModel> sorter; sorter = new TableRowSorter<TableModel>(modelo); tabela.setRowSorter(sorter); Container c = getContentPane(); c.setLayout(new FlowLayout()); JScrollPane scrollPane = new JScrollPane(tabela); c.add(scrollPane); setSize(400, 300); setVisible(true); } TableModel createTableModel(){ DefaultTableModel model = new DefaultTableModel(5, 2); String[] colunas = {"Cidades","Estados"}; model.setColumnIdentifiers(colunas); String[] cidades = {"Goiânia", "Cuiabá", "Brasília", "Barra do Garças", "Fortaleza"}; String[] estados = {"GO", "MT", "DF", "MT", "CE"}; int nrows = model.getRowCount(); int ncols = model.getColumnCount(); for(int i = 0; i < nrows; i++){ model.setValueAt(cidades[i], i, 0); model.setValueAt(estados[i], i, 1); } return model; } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Fundamentos da Linguagem ::: Tipos de Dados |
Como usar o tipo de dados char da linguagem JavaQuantidade de visualizações: 25272 vezes |
O tipo de dados char é usado para representar um único caractere. Veja:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ char letra1 = 'A'; char letra2 = 'B'; System.out.println("As letras são: " + letra1 + " e " + letra2); System.exit(0); } } Observe que um literal string deve estar entre aspas duplas, enquanto que um literal do tipo caractere deve estar entre aspas simples. Desta forma, "H" é uma string e 'H' é um caractere. O tipo char é integral mas sem sinal. A faixa de uma variável deste tipo vai de 0 à 65536. Os caracteres em Java são codificados em Unicode, que é um codificação de 16 bits capaz de representar uma larga faixa de caracteres internacionais. Se os 9 bits mais significantes de um char forem todos 0, então a codificação será a mesma que o ASCII de 7 bits. É possível atribuir literais inteiros à uma variável do tipo char. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ char letra = 98; System.out.println("A letra é: " + letra); System.exit(0); } } Este código exibirá o caractere 'b'. Veja um exemplo no qual imprimimos todas as letras do alfabeto minúsculo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ for(char i = 97; i <= 122; i++){ System.out.print(i + " "); } System.exit(0); } } O tipo char pode ser convertido (sem a necessidade de cast) para os seguintes tipos: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- char -> int -> long -> float -> double Não é possível converter um char em um short ou byte. Caso isso seja realmente necessário, temos que fazer uma coerção (cast). Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Estudos{ public static void main(String args[]){ char letra = 57; byte valor = (byte)(letra); System.exit(0); } } É fácil entender porque um char não pode ser convertido implicitamente em um byte. Um char possui 16 bits enquanto um byte possui apenas 8 bits. Mas, um short possui 16 bits. Assim, o que impede a conversão implicita de um char para um short? É simples. Como o tipo short possui sinal (aceita valores negativos) e o tipo char é sem sinal, o resultado é que o tipo short possui um bit a menos (reservado para o sinal) e portanto, não pode acomodar os 16 bits do tipo char. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Física - Mecânica - Movimento Retilíneo Uniforme (MRU) |
Exercícios Resolvidos de Física usando Java - Dois automóveis, A e B, movem-se em movimento uniforme e no mesmo sentido. Suas velocidades escalares têm módulos respectivamente iguais a...Quantidade de visualizações: 2291 vezes |
Pergunta/Tarefa: Dois automóveis, A e B, movem-se em movimento uniforme e no mesmo sentido. Suas velocidades escalares têm módulos respectivamente iguais a 15 m/s e 10 m/s. No instante t = 0, os automóveis encontram-se nas posições indicadas abaixo: Determine: a) o instante em que A alcança B; b) a que distância da posição inicial de A ocorre o encontro. Resposta/Solução: Este é um dos exemplos clássicos que encontramos nos livros de Física Mecânica, nos capítulos dedicados ao Movimento Retilíneo Uniforme (MRU). Em geral, tais exemplos são vistos como parte dos estudos de encontro e ultrapassagem de partículas. Por se tratar de Movimento Retilíneo Uniforme (MRU), as grandezas envolvidas nesse problema são: posição (deslocamento), velocidade e tempo. Assim, já sabemos de antemão que o veículo B está 100 metros à frente do veículo A. Podemos então começar calculando a posição atual na qual cada um dos veículos se encontra. Isso é feito por meio da Função Horária da Posição ou Deslocamento em Movimento Retilíneo Uniforme - MRU. Veja o código Java que nos retorna a posição inicial (em metros) dos dois veículos: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String args[]){ // valocidade do veículo A double vA = 15; // em metros por segundo // valocidade do veículo B double vB = 10; // em metros por segundo // posição inicial dos dois veículos double sInicialA = 0; double sInicialB = 100; // tempo inicial em segundos double tempo_inicial = 0; // calcula a posição atual dos dois veículos double sA = sInicialA + (vA * tempo_inicial); double sB = sInicialB + (vB * tempo_inicial); // mostra os resultados System.out.println("A posição do veículo A é: " + sA + " metros"); System.out.println("A posição do veículo B é: " + sB + " metros"); } } Ao executar esta primeira parte do código Java nós teremos o seguinte resultado: A posição do veículo A é: 0.0 metros A posição do veículo B é: 100.0 metros Agora que já temos o código que calcula a posição de cada veículo, já podemos calcular o tempo no qual o veículo A alcança o veículo B. Para isso vamos pensar direito. Se o veículo A vai alcançar o veículo B, então já sabemos que a velocidade do veículo A é maior que a velocidade do veículo B. Sabemos também que a posição do veículo B é maior que a posição do veículo A. Só temos que aplicar a fórmula do tempo, que é a variação da posição dividida pela variação da velocidade. Veja o código Java que efetua este cálculo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String args[]){ // valocidade do veículo A double vA = 15; // em metros por segundo // valocidade do veículo B double vB = 10; // em metros por segundo // posição inicial dos dois veículos double sInicialA = 0; double sInicialB = 100; // tempo inicial em segundos double tempo_inicial = 0; // calcula a posição atual dos dois veículos double sA = sInicialA + (vA * tempo_inicial); double sB = sInicialB + (vB * tempo_inicial); // calculamos o tempo no qual o veículo A alcança o veículo B double tempo = (sB - sA) / (vA - vB); // mostra os resultados System.out.println("A posição do veículo A é: " + sA + " metros"); System.out.println("A posição do veículo B é: " + sB + " metros"); System.out.println("O veículo A alcança o veículo B em " + tempo + " segundos"); } } Ao executar esta modificação do código Java nós teremos o seguinte resultado: A posição do veículo A é: 0.0 metros A posição do veículo B é: 100.0 metros O veículo A alcança o veículo B em 20.0 segundos O item b pede para indicarmos a que distância da posição inicial de A ocorre o encontro entre os dois veículos. Agora que já sabemos o tempo do encontro, fica muito fácil. Basta multiplicarmos a velocidade do veículo A pelo tempo do encontro. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String args[]){ // valocidade do veículo A double vA = 15; // em metros por segundo // valocidade do veículo B double vB = 10; // em metros por segundo // posição inicial dos dois veículos double sInicialA = 0; double sInicialB = 100; // tempo inicial em segundos double tempo_inicial = 0; // calcula a posição atual dos dois veículos double sA = sInicialA + (vA * tempo_inicial); double sB = sInicialB + (vB * tempo_inicial); // calculamos o tempo no qual o veículo A alcança o veículo B double tempo = (sB - sA) / (vA - vB); // a que distância da posição inicial de A ocorre o encontro double distancia_encontro = vA * tempo; // mostra os resultados System.out.println("A posição do veículo A é: " + sA + " metros"); System.out.println("A posição do veículo B é: " + sB + " metros"); System.out.println("O veículo A alcança o veículo B em " + tempo + " segundos"); System.out.println("O encontro ocorreu a " + distancia_encontro + " metros da distância inicial do veículo A"); } } Agora o código Java completo nos mostra o seguinte resultado: A posição do veículo A é: 0.0 metros A posição do veículo B é: 100.0 metros O veículo A alcança o veículo B em 20.0 segundos O encontro ocorreu a 300.0 metros da distância inicial do veículo A Para demonstrar a importância de se saber calcular a Função Horária da Posição ou Deslocamento em Movimento Retilíneo Uniforme (MRU), experimente indicar que o veículo A saiu da posição 20 metros, e defina a posição inicial do veículo B para 120 metros, de modo que ainda conservem a distância de 100 metros entre eles. Você verá que o tempo do encontro e a distância do encontro em relação à posição inicial do veículo A continuam os mesmos. Agora experimente mais alterações nas posições iniciais, na distância e também nas velocidades dos dois veículos para entender melhor os conceitos que envolvem o Movimento Retilíneo Uniforme (MRU). |
Java ::: Design Patterns (Padrões de Projeto) ::: Singleton Pattern |
Padrões de projeto para iniciantes - Como usar o padrão de projeto Singleton em suas aplicações JavaQuantidade de visualizações: 11870 vezes |
O padrão de projeto Singleton (ou Singleton Pattern) é um dos padrões de projeto mais conhecidos e implementado extensivamente nas linguagens que suportam programação orientada a objetos, tais como Java e C#. Nesta dica eu mostrarei como implementá-lo. Uma das situações nas quais usamos o padrão Singleton é quando queremos que somente uma instância de uma determinada classe seja criada e que esta esteja disponível para todas as demais classes do sistema. Um exemplo disso é uma classe responsável por registrar logs do sistema, uma classe responsável por obter conexões com o banco de dados, ou ainda uma classe que concentra dados de configuração da aplicação. Assim, a chave do padrão Singleton é um método estático, geralmente chamado de getInstance(), que retorna uma nova instância da classe se esta ainda não foi instanciada. Se a classe já tiver sido instanciada, o método getInstance() retorna a instância já existente. Vamos ver um exemplo deste padrão em Java. Observe o código a seguir: Código para Logger.java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; // Uma classe Singleton responsável por gravar // logs no sistema public class Logger { // variável estática e privada que guarda a instância // atual da classe private static Logger instancia = null; // Método estático que retorna uma instância já existente, ou // cria uma nova instância public static Logger getInstance() { if (instancia == null) { instancia = new Logger(); } return instancia; } // Construtor privado para evitar que instâncias sejam // criadas usando new private Logger() { // não precisamos fazer nada aqui } // método usado para registrar logs public void registrarLog(String dados) { System.out.println("Vou registrar o log: " + dados); } } Veja agora como podemos chamar o método getInstance(), obter um objeto da classe Logger e "registrar um log": Código para Main.java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; public class Main { public static void main(String[] args) { // vamos registrar um novo log usando a classe Singleton Logger.getInstance().registrarLog("Novo usuário cadastrado."); } } Ao executar esta aplicação teremos a seguinte saída: Vou registrar o log: Novo usuário cadastrado. |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
JavaScript - Como calcular o comprimento da hipotenusa em JavaScript dadas as medidas do cateto oposto e do cateto adjascente |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |