Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: Java ::: Java Swing - Componentes Visuais ::: JList

Como retornar os valores selecionados em uma JList de seleção múltipla do Java Swing usando o método getSelectedValues()

Quantidade de visualizações: 9313 vezes
Nesta dica mostrarei como podemos usar o método getSelectedValues() da classe JList do Java Swing para obter e retornar um vetor (array) contendo os valores selecionados em uma lista de múltipla seleção, ou seja, uma JList que permite a seleção de mais de um elemento por vez.

O método getSelectedValues() retorna um vetor de Object. Note também o uso da constante ListSelectionModel.MULTIPLE_INTERVAL_SELECTION fornecida para o método setSelectionMode() para definir a forma de seleção da JList.

Veja o código Java Swing completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Estudos extends JFrame{
  JList lista;  

  public Estudos() {
    super("A classe JList");
    
    Container c = getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.LEFT));
    
    // Cria os itens da lista
    String nomes[] = {"Carlos", "Marcelo", "Fabiana",
      "Carolina", "Osmar"};

    // Cria a JList
    lista = new JList(nomes);
 
    // Define a seleção múltipla para a lista
    lista.setSelectionMode(
      ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

    // Um botão que permite obter os valores selecionados
    JButton btn = new JButton("Obter valores selecionados");
    btn.addActionListener(
      new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e){
          Object[] valores = lista.getSelectedValues();
          String res = "Valores selecionados:\n";

          for(int i = 0; i < valores.length; i++)
            res += valores[i].toString() + "\n";

          JOptionPane.showMessageDialog(null, res);
        }
      }
    );

    // Adiciona a lista à janela
    c.add(new JScrollPane(lista));

    // Adiciona o botão à janela
    c.add(btn);  

    setSize(350, 250);
    setVisible(true);
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

Mais de um valor pode ser marcado na JList mantendo a tecla Ctrl ou Shift enquanto se clica nos valores desejados.

Link para compartilhar na Internet ou com seus amigos:

Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular a norma ou módulo de vetores nos espaços R2 e R3 usando Java - Geometria Analítica e Álgebra Linear usando Java

Quantidade de visualizações: 1653 vezes
Em Geometria Analítica e Álgebra Linear, a magnitude, norma, comprimento, tamanho ou módulo (também chamado de intensidade na Física) de um vetor é o seu comprimento, que pode ser calculado por meio da distância de seu ponto final a partir da origem, no nosso caso (0,0).

Considere o seguinte vetor no plano, ou seja, no espaço bidimensional, ou R2:

\[\vec{v} = \left(7, 6\right)\]

Aqui este vetor se inicia na origem (0, 0) e vai até as coordenadas (x = 7) e (y = 6). Veja sua plotagem no plano 2D:



Note que na imagem já temos todas as informações que precisamos, ou seja, o tamanho desse vetor é 9 (arredondado) e ele faz um ângulo de 41º (graus) com o eixo x positivo. Em linguagem mais adequada da trigonometria, podemos dizer que a medida do cateto oposto é 6, a medida do cateto adjacente é 7 e a medida da hipotenusa (que já calculei para você) é 9.

Note que já mostrei também o ângulo theta (__$\theta__$) entre a hipotenusa e o cateto adjacente, o que nos dá a inclinação da reta representada pelos pontos (0, 0) e (7, 6).

Relembrando nossas aulas de trigonometria nos tempos do colegial, temos que o quadrado da hipotenusa é a soma dos quadrados dos catetos, ou seja, o Teorema de Pitágoras:

\[a^2 = b^2 + c^2\]

Como sabemos que a potenciação é o inverso da radiciação, podemos escrever essa fórmula da seguinte maneira:

\[a = \sqrt{b^2 + c^2}\]

Passando para os valores x e y que já temos:

\[a = \sqrt{7^2 + 6^2}\]

Podemos comprovar que o resultado é 9,21 (que arredondei para 9). Não se esqueça da notação de módulo ao apresentar o resultado final:

\[\left|\vec{v}\right| = \sqrt{7^2 + 6^2}\]

E aqui está o código Java que nos permite informar os valores x e y do vetor e obter o seu comprimento, tamanho ou módulo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

import java.util.Scanner;

public class Estudos{
  public static void main(String args[]){
    Scanner entrada = new Scanner(System.in);
    
    // vamos ler os valores x e y
    System.out.print("Informe o valor de x: ");
    double x = Double.parseDouble(entrada.nextLine());
    System.out.print("Informe o valor de y: ");
    double y = Double.parseDouble(entrada.nextLine());
    
    // vamos calcular a norma do vetor
    double norma = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
    
    // mostra o resultado
    System.out.println("A norma do vetor é: " + norma);
  }
}

Ao executar este código nós teremos o seguinte resultado:

Informe o valor de x: 7
Informe o valor de y: 6
A norma do vetor é: 9.219544457292887

Novamente note que arredondei o comprimento do vetor para melhor visualização no gráfico. Para calcular a norma de um vetor no espaço, ou seja, no R3, basta acrescentar o componente z no cálculo.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos

Exercício Resolvido de Java - Crie uma classe Agenda que pode armazenar 10 pessoas e que seja capaz de realizar as seguintes operações

Quantidade de visualizações: 5703 vezes
Exercícios Resolvidos de Java - Crie uma classe Agenda que pode armazenar 10 pessoas e que seja capaz de realizar as seguintes operações

Pergunta/Tarefa:

Crie uma classe Agenda que pode armazenar 10 pessoas e que seja capaz de realizar as seguintes operações:

void armazenaPessoa(String nome, int idade, float altura);
void removePessoa(String nome);
int buscaPessoa(String nome); // informa em que posição da agenda está a pessoa
void imprimeAgenda(); // imprime os dados de todas as pessoas da agenda
void imprimePessoa(int index); // imprime os dados da pessoa que está na posição "i" da agenda.

O código deverá ser desenvolvido em Java console (modo texto) e usar um menu switch() para as operações.

Sua saída deverá ser parecida com:



Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

Código para a classe Pessoa (Pessoa.java):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

public class Pessoa {
  private String nome;
  private int idade;
  private double altura;

  // construtor cheio 
  public Pessoa(String nome, int idade, double altura) {
    this.nome = nome;
    this.idade = idade;
    this.altura = altura;
  }

  // construtor vazio
  public Pessoa() {
  }
  
  
  // método que imprime todos os dados da pessoa
  public void imprimirDados(){
    System.out.println("Nome: " + nome + "\nIdade: " +
      idade + "\nAltura: " + altura);
  }
  
  public String getNome() {
    return nome;
  }

  public void setNome(String nome) {
    this.nome = nome;
  }

  public int getIdade() {
    return idade;
  }

  public void setIdade(int idade) {
    this.idade = idade;
  }

  public double getAltura() {
    return altura;
  }

  public void setAltura(double altura) {
    this.altura = altura;
  }
}     

Código para a classe Agenda (Agenda.java):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

public class Agenda {
  // vetor que guardará as pessoas
  private Pessoa pessoas[];

  // construtor da classe Agenda
  public Agenda(int quantidade){
    pessoas = new Pessoa[quantidade];
  }

  public void armazenaPessoa(String nome, int idade, double altura){
    // ainda temos posições disponíveis na agenda?
    boolean cadastrado = false;
    for(int i = 0; i < pessoas.length; i++){
      if(pessoas[i] == null){
        // encontramos uma posição
        Pessoa p = new Pessoa(nome, idade, altura); // criamos uma nova pessoa
        // guardamos ela no vetor
        pessoas[i] = p;
        // e avisamos que o cadastro foi efetuado com sucesso
        cadastrado = true;
        break; // sai do laço
      }
    }
    
    if(cadastrado){
      System.out.println("\nCadastro efetuado com sucesso");
    }
    else{
      System.out.println("\nNão foi possível cadastrar. Agenda cheia");
    }
  }

  // método que permite pesquisar e excluir uma pessoa
  public void removePessoa(String nome){
    // vamos verificar se a exclusão foi efetuada com sucesso
    boolean excluido = false;
    for(int i = 0; i < pessoas.length; i++){
      if(pessoas[i] != null){
        // esta é a pessoa que estamos procurando?
        if(pessoas[i].getNome().equals(nome)){
          pessoas[i] = null; // posição disponível novamente
          excluido = true;
          break; // sai do laço
        }
      }
    }
    
    if(excluido){
      System.out.println("\nPessoa removida com sucesso");
    }
    else{
      System.out.println("\nNão foi possível remover. Pessoa não encontrada.");
    }
  }

  // informa em que posição da agenda está a pessoa 
  public int buscaPessoa(String nome){
    int resultado = -1;
    
    // vamos verificar se a pessoa existe na agenda
    for(int i = 0; i < pessoas.length; i++){
      if(pessoas[i] != null){
        // esta é a pessoa que estamos procurando?
        if(pessoas[i].getNome().equals(nome)){
          resultado = i;
          break; // sai do laço
        }
      }
    }
    
    return resultado;
  }

  // imprime os dados de todas as pessoas da agenda
  public void imprimeAgenda(){
    // vamos percorrer o vetor de pessoas e imprimir cada uma
    for(int i = 0; i < pessoas.length; i++){
      if(pessoas[i] != null){
        Pessoa p = pessoas[i];
        System.out.println("\nNome: " + p.getNome());
        System.out.println("Idade: " + p.getIdade());
        System.out.println("Altura: " + p.getAltura());
      }
    }
  }

  // imprime os dados da pessoa que está na posição "i" da agenda
  public void imprimePessoa(int index){
    // este índice é válido?
    if((index < 0) || (index > (pessoas.length - 1))){
      System.out.println("\nÍndice inválido");
    }
    else{
      Pessoa p = pessoas[index];
      if(p == null){
        System.out.println("\nNão existe pessoa nesse índice ainda.");
      }
      else{
        System.out.println("\nNome: " + p.getNome());
        System.out.println("Idade: " + p.getIdade());
        System.out.println("Altura: " + p.getAltura());
      }
    }
  }  
}

Código para a classe Principal (Principal.java):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

import java.util.Scanner;

public class Principal {
  // para fazer a leitura da entrada do usuário
  static Scanner entrada = new Scanner(System.in);
  
  public static void main(String[] args) {
    // cria uma nova Agenda
    Agenda agenda = new Agenda(10);
    String nome; // nome da pessoa
    int idade; // idade da pessoa
    double altura; // altura da pessoa
    
    // cria o menu de opções
    while(true){
      System.out.println("\n1. Nova Pessoa");
      System.out.println("2. Excluir Pessoa");
      System.out.println("3. Buscar Pessoa");
      System.out.println("4. Imprimir Agenda");
      System.out.println("5. Imprimir Pessoa (Índice)");
      System.out.println("6. Sair");
      System.out.print("Sua opção: ");
      int opcao = Integer.parseInt(entrada.nextLine());
      
      switch(opcao){
        case 1:
          System.out.print("\nInforme o nome: ");
          nome = entrada.nextLine();
          System.out.print("Informe a idade: ");
          idade = Integer.parseInt(entrada.nextLine());
          System.out.print("Informe a altura (use ponto em vez de vírgula): ");
          altura = Double.parseDouble(entrada.nextLine());
          agenda.armazenaPessoa(nome, idade, altura);
          break;
          
        case 2:
          System.out.print("\nInforme o nome a ser removido: ");
          nome = entrada.nextLine();
          agenda.removePessoa(nome);
          break;  
        
        case 3:
          System.out.print("\nInforme o nome a ser pesquisado: ");
          nome = entrada.nextLine();
          int indice = agenda.buscaPessoa(nome);
          if(indice < 0){
            System.out.println("\nA pessoa não foi encontrada");
          }
          else{
            System.out.println("\nA pessoa foi encontrada no índice: "
              + indice);
          }
          
          break;  
        
        case 4:
          agenda.imprimeAgenda();
          break;
        
        case 5:
          System.out.print("\nInforme o índice desejado: ");
          int index = Integer.parseInt(entrada.nextLine());
          agenda.imprimePessoa(index);
          break;  
          
        case 6:
          System.exit(0);
          
        default:
          System.out.println("\nOpção inválida\n");
          break;
      }
    }
  }
}



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercício Resolvido de Java - Escreva um programa Java que efetue a soma dos elementos da diagonal principal de uma matriz

Quantidade de visualizações: 1353 vezes
Pergunta/Tarefa:

Em álgebra linear, a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito (conforme mostrado na saída do problema proposto abaixo).

Escreva um programa Java que declara uma matriz 3x3 e pede ao usuário para informar seus valores. Em seguida mostre todos os valores da matriz e a soma dos elementos da diagonal principal. Sua saída deverá ser parecida com a imagem abaixo:



Resposta/Solução:

Veja a resolução comentada deste exercício em Java:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos{ 
  public static void main(String args[]){ 
    // vamos usar a classe Scanner para a leitura dos dados
    Scanner entrada = new Scanner(System.in);
    
    int matriz[][] = new int[3][3]; // uma matriz de três linhas e três colunas
    int soma_diagonal = 0; // guarda a soma dos elementos na diagonal principal

    // vamos ler os valores para os elementos da matriz
    for(int i = 0; i < 3; i++){ // linhas
      for(int j = 0; j < 3; j++){ // colunas
        System.out.print("Valor para a linha " + i + " e coluna " + j + ": ");
        matriz[i][j] = Integer.parseInt(entrada.nextLine());       
      }        
    }
  
    // vamos mostrar a matriz da forma que ela foi informada
    System.out.println("\nValores na matriz\n");
    
    for(int i = 0; i < 3; i++){
      for(int j = 0; j < 3; j++){
        System.out.printf("%5d ", matriz[i][j]);   
      }
    
      // passa para a próxima linha da matriz
      System.out.println();       
    }
  
    // vamos calcular a soma dos elementos da diagonal principal
    for(int i = 0; i < 3; i++){
      for(int j = 0; j < 3; j++){
        if(i == j){
          soma_diagonal = soma_diagonal + matriz[i][j];
        }
      }
    }
  
    System.out.println("\nA soma dos elementos da diagonal principal é: " + 
      soma_diagonal);
  }
}



Vamos testar seus conhecimentos em Python

Qual o resultado da execução do seguinte código Python?

palavra = "ESTUDAR"
resultado = palavra[::-1]
print(resultado)

A) ESTUDAR

B) EST

C) RADUTSE

D) TUDAR

E) ESTUDA
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fundações

Fundações profundas

As estacas Strauss podem ser armadas com ferragem longitudinal (barras retas) e estribos que permitam livre passagem do soquete de compactação e garantam um cobrimento da armadura não inferior a 3cm.

A estaca Strauss é recomendada:

A) apenas em terrenos com comprimento fixo de cravação.

B) em trabalhos abaixo do lençol freático.

C) em terrenos com comprimento variável de cravação.

D) com a disponibilidade de equipamentos robustos e complexos na execução.

E) em áreas não suscetíveis à presença de agentes biológicos.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira

Estrutura e propriedade dos materiais

Os materiais podem ser de várias classes de acordo com as suas propriedades.

O objetivo de estudar suas tecnologias consiste em:

A) controlar precisamente e individualmente os átomos para fabricar materiais com propriedades e desempenho específicos.

B) fabricar materiais com novas propriedades.

C) controlar as propriedades dos materiais.

D) estudar e produzir materiais a nível macro para fabricar materiais com propriedades específicas.

E) controlar os átomos, em geral, para fabricar materiais com desempenho específico.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual a sintaxe correta para mostrar o tipo de uma variável em Python?

a = 45
print("O tipo da variável é: {0}".format(______________))

A) typeOf(a)

B) Type(a)

C) typeof(a)

D) type(a)

E) type a
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

O projeto de instalação hidrossanitária

As fossas sépticas consistem em alternativas para o tratamento primário, em soluções individuais de esgotamento sanitário. A ABNT NBR 7229:1993 (Projeto, construção e operação de sistemas de tanques sépticos) define alguns cuidados necessários em relação ao tamanho e ao dimensionamento necessário.

Considere as seguintes sentenças:

I - O tanque séptico consiste em uma unidade cilíndrica ou prismática retangular de fluxo horizontal para tratamento de esgotos por processos de sedimentação, flotação e digestão, o qual deve respeitar uma distância mínima de 1,50m de construções.

II - O sumidouro é definido como um poço seco escavado no chão, sendo impermeabilizado.

III - O lodo e a escuma removidos dos tanques sépticos podem ser lançados em corpos de água ou galerias de águas pluviais, desde que atendam aos limites de lançamento definidos em lei.

Assinale a alternativa correta:

A) Apenas a sentença II está correta.

B) As sentenças I e II estão corretas.

C) Apenas a sentença I está correta.

D) Apenas a sentença III está correta.

E) Apenas as sentenças II e III estão corretas.
Verificar Resposta Estudar Cards Todas as Questões

Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware 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 funcionalidadesControle 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
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 31 usuários muito felizes estudando em nosso site.