Jump to content

Search the Community

Showing results for tags 'java'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Bem-vindos ao Portugal-a-Programar
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
  • Comunidade a Trabalhar
    • Wiki P@P
    • Apresentação de Projectos de Programação
    • Downloads
  • Revista PROGRAMAR
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • Haskell
    • Pascal
    • Python
    • Bases de Dados
    • Visual Basic Clássico
    • Visual Basic for Applications (VBA)
    • Dispositivos Móveis
    • Outras Linguagens
  • Desenvolvimento Orientado para Web
    • PHP
    • HTML
    • CSS
    • Javascript
    • Outras Linguagens de WebDevelopment
    • Desenvolvimento Web
  • Desenvolvimento .NET
    • C#
    • Visual Basic .NET
    • ASP.NET
    • WPF & SilverLight
  • Software e Sistemas Operativos
    • Software de Produtividade
    • Sistemas Operativos
    • Apresentação de Software
  • Informática
    • Interfaces Visuais
    • Computação Gráfica
    • Algoritmia e Lógica
    • Segurança e Redes
    • Hardware
    • Electrónica
    • Automação Industrial
    • Matemática
    • Dúvidas e Discussão de Programação
    • Notícias de Tecnologia
  • Outras Áreas
    • Dúvidas Gerais
    • Discussão Geral
    • Eventos
    • Anúncios de Emprego
    • Tutoriais
    • Snippets / Armazém de Código
  • Arquivo Morto
    • Projectos Descontinuados
    • System Empires

Blogs

  • Blog dos Moderadores
  • Eventos
  • Notícias de Tecnologia
  • Blog do Staff
  • Revista PROGRAMAR
  • Projectos
  • Wiki

Categories

  • Revista PROGRAMAR
  • Tutoriais
  • Textos Académicos
  • Exercícios Académicos
    • Exercícios c/ Solução
    • Exercícios s/ Solução
  • Bibliotecas e Aplicações
  • Outros

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Found 3,469 results

  1. Pessoal, com o código abaixo eu populo um Spiiner; Esse Spinner, é populado por um atributo de um Array de objetos À principio, temos o seguinte JSONArray: [ { "id":"1", "nome":"Carlos" }, { "id":"2", "nome":"Cleonice Rocha" }, { "id":"3", "nome":"Cleonice Rocha" } ] Agora temos o método: private void preencheComboClientes(JSONArray jsClientes) throws JSONException { JSONObject jsonObject; final HashMap<Integer, String> listaClientes = new HashMap<Integer, String>(); for (Integer i = 0; i < jsClientes.length(); i++) { jsonObject = jsClientes.getJSONObject(i).getJSONObject("cliente"); Integer id = jsonObject.getInt("id"); String nome = jsonObject.getString("nome"); listaClientes.put(id, nome); } List<StringWithTag> itemList = new ArrayList<StringWithTag>(); for (Map.Entry<Integer, String> entry : listaClientes.entrySet()) { Integer key = entry.getKey(); String value = entry.getValue(); itemList.add(new StringWithTag(value, key)); } spinnerAdapterClientes = new ArrayAdapter<StringWithTag>(this, android.R.layout.simple_spinner_item, itemList); spinnerAdapterClientes.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spCliente.setAdapter(spinnerAdapterClientes); spCliente.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { for (Map.Entry<Integer, String> entry : listaClientes.entrySet()) { Integer key = entry.getKey(); String value = entry.getValue(); if (parent.getSelectedItem().toString().equals(value)) { Log.i("Achei!!!" , Integer.toString(key)); } } } @Override public void onNothingSelected(AdapterView<?> parent) { // sometimes you need nothing here } }); } Então, imagine a situação em que você tem um Array de Objetos e esse Objeto possui CPF e NOME Bom, CPF cada um tem o seu. Não se repete. Mas, Nome, infelizmente podemos ter 2 nomes iguais Logo, não posso enviar a consulta por nome e sim por CPF Como o Spinner não aceita CPF e Nome, logo, fico impossibilitado de fazer conferências. Como vocês fazer nesse caso?
  2. carcleo

    Preencher Spinner

    Tenho a seguinte saída JSON vinda de uma API: { "status":"ok", "equipamentos": [ { "equipamento": "{ \"id\":7, \"cliente\":1, \"tipo\":\"Celular\", \"marca\":\"Motorola\", \"modelo\":\"Moto G 7\", \"serial\":\"Aparelho n\\u00e3o liga\", \"caracteristicas\":\"P\\u00c9SSIMO\" }" }, { "equipamento": "{ \"id\":8, \"cliente\":1, \"tipo\":\"Celular\", \"marca\":\"Motorola\", \"modelo\":\"Moto G 7\", \"serial\":\"Aparelho n\\u00e3o liga\", \"caracteristicas\":\"P\\u00c9SSIMO\" }" } ] } E o seguinte método para gerar um novo objeto à partir do índice "equipamentos" gerado do JSON recebido da API @Override protected void onPostExecute(String str) { progressDialog.cancel(); JSONObject retorno = null; try { retorno = new JSONObject(str); if ( retorno.has("equipamentos")) preencherComboEquipamentos(retorno.getJSONObject("equipamentos")); } catch (JSONException e) { e.printStackTrace(); } } Com ele, o método preencherComboEquipamentos receberá um objeto como abaixo: [ { "equipamento": "{ \"id\":7, \"cliente\":1, \"tipo\":\"Celular\", \"marca\":\"Motorola\", \"modelo\":\"Moto G 7\", \"serial\":\"Aparelho n\\u00e3o liga\", \"caracteristicas\":\"P\\u00c9SSIMO\" }" }, { "equipamento": "{ \"id\":8, \"cliente\":1, \"tipo\":\"Celular\", \"marca\":\"Motorola\", \"modelo\":\"Moto G 7\", \"serial\":\"Aparelho n\\u00e3o liga\", \"caracteristicas\":\"P\\u00c9SSIMO\" }" } ] Agora preciso criar um JSONArray de JSONObjects com apenas 2 campos trazidos do JSONObject anterior que são id e cliente. Estou tentando assim mas não está dando certo private void preencheComboClientes(JSONObject JSClientes) throws JSONException { JSONObject clientes = null; ArrayList<JSONObject> clientesList = null; for (int i = 0; i < JSClientes.length(); i++) { clientes.put("id", JSClientes.getJSONObject(i).getInt("id")); clientes.put("nome", JSClientes.getJSONObject(i).getInt("nome")); clientesList[clientes]; } ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, clientes); spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spCliente.setAdapter(spinnerArrayAdapter); } A ideia é preencher um spinner.
  3. Mário Rodrigues

    Passar dados de uma tabela em outra tabela

    Olá pessoal , É o seguinte tenho um form venda com uma tabela e um botão para pesquisa de produtos, o objectivo é ao clicar na linha de um produto este produto abra no form venda, consigo fazer usando o defaulttable, mas pelo que vi não é muito recomendável, pelo que quero fazer pelo Tablemodel ou concretamento pelo AbstractTableModel Eis como está o Formulário Venda public class frm_Venda extends javax.swing.JFrame { ConectaBanco conecta = new ConectaBanco(); public static DefautTableModel tabela2; public frm_Venda (){ initcomponent tabela2= new DefaultTableModel (); tabela2.addcolumn ("Codigo"); tabela2.addcolumn ("Produto"); jTablePedidos.setModel(tabela2); E o Formulário Pesquisa Produtos,retornando do banco; public class frm_pesquisaproduto extends javax.swing.JFrame { ConectaBanco conecta = new ConectaBanco();//Metódo usado para conectar ao Banco de Dados DefaultTableModel modelo1 = null; public frm_pesquisaproduto (){ initcomponents (); conecta.conexao(); modelo1=new DefaultTableModel(); jTablePesquisaProduto.setModel(modelo1); jTablePesquisaProduto.getRowCount(); private void jTablePesquisaProdutoMouseClicked(java.awt.event.MouseEvent evt) { //Quando se clica na linha selecionada int filaselecionada =jTablePesquisaProduto.getSelectedRow(); if (filaselecionada>=0) { String Dados []= new String[4]; Dados [0]= jTablePesquisaProduto.getValueAt(filaselecionada, 0).toString(); Dados[1]= jTablePesquisaProduto.getValueAt(filaselecionada, 1).toString(); Dados[2]= jTablePesquisaProduto.getValueAt(filaselecionada, 2).toString(); Dados[3]= jTablePesquisaProduto.getValueAt(filaselecionada, 3).toString(); frm_Venda.tabela2.addRow(Dados); //comunicando com o outro formulário
  4. carcleo

    AssyncTask, usar apenas uma vez

    Fala povo! Feliz Ano Novo a todos e a todas! Então, estou fazendo a seguinte classe que estende AssyncTask private class HttpService extends AsyncTask<String, Integer, String> { O que ocorre é que terei que chamar esse classe umas 4 vezes no mesmo arquivo e ele fica muito grande! No entanto, não consegui criar essa solução O jeito foi usar o onPosExecute() mesmo e repetir a classe HttpService 3 vezes. Uma para cada operação. Algum recurso? É que em algumas chamadas precisarei passar um token no cabeçalho (header) da requisição e em outros não. Vejam com estou tentando! package br.net.concertacell; import androidx.appcompat.app.AppCompatActivity; import android.app.ProgressDialog; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.Spinner; import android.widget.TextView; import org.json.JSONException; import org.json.JSONObject; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import br.net.concertacell.classes.Orcamentos; public class Cadastrar extends AppCompatActivity { private Bundle tokenWS; private String token; private Spinner spCliente; private Spinner spEquipamento; private EditText etEstado; private EditText etDefeitoRelatado; private Button btnCadastrar; private TextView tvResposta; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.cadastrar); tokenWS = getIntent().getExtras(); token = tokenWS.getString("tokenWS"); tvResposta = findViewById(R.id.tvResposta); spCliente = findViewById(R.id.spClientes); spEquipamento = findViewById(R.id.spEquipamento); etEstado = findViewById(R.id.etEstado); etDefeitoRelatado = findViewById(R.id.etDefeitoRelatado); obtemListaClientes (); obtemListaEquipamentos (); } private void obtemListaClientes() { String urlClientes = "https://acweb.net.br/api/clientes/listar"; HttpService htClientes = new HttpService(); htClientes.execute(urlClientes, this.token, "", "spCliente"); } private void obtemListaEquipamentos() { String urlEquipamentos = "https://acweb.net.br/api/equipamentos/listar"; HttpService htEquipamentos = new HttpService(); htEquipamentos.execute(urlEquipamentos, this.token, "", "spEquipamento"); } public void cadastrar(View view) throws IOException { String url = "https://acweb.net.br/api/orcamentos/cadastrar"; Orcamentos orcamento = new Orcamentos( 2, 2, "Aparelho não liga", "PÉSSIMO" ); HttpService htOrcamentos = new HttpService(); htOrcamentos.execute(url, this.token, orcamento.toString()); } private class HttpService extends AsyncTask<String, Integer, String> { ProgressDialog progressDialog; @Override protected void onPreExecute() { progressDialog = new ProgressDialog(Cadastrar.this); progressDialog.setTitle("Aguarde"); progressDialog.setMessage("Processando..."); progressDialog.setCancelable(false); progressDialog.show(); } @Override protected String doInBackground(String... args) { String resposta = ""; try { URL url = new URL(args[0]); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); conn.setRequestProperty("Accept", "application/json"); conn.setRequestProperty("token", args[1]); conn.setDoOutput(true); conn.setDoInput(true); DataOutputStream os = new DataOutputStream(conn.getOutputStream()); if (!args[2].equals("")) os.writeBytes(args[2]); os.flush(); os.close(); BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String inputLine; String linha = ""; while ((inputLine = in.readLine()) != null) { Log.i("inputLine: ", inputLine.toString()); resposta += inputLine; } in.close(); conn.disconnect(); } catch (Exception e) { e.printStackTrace(); } return [resposta, args[3]]; } @Override protected void onPostExecute(String str) { progressDialog.cancel(); JSONObject retorno = null; try { retorno = new JSONObject(str); Log.i ("Resultado", retorno.toString()); tvResposta.setText(retorno.getString("mensagem")); } catch (JSONException e) { e.printStackTrace(); } } @Override protected void onProgressUpdate(Integer... text) { super.onProgressUpdate(text); } } } Já estou perdido
  5. carcleo

    isset em JAVA

    Então, em PHP, temos um array: $meuArray = [ "indice1" => 123, "indice2" => 123, ] Então queremos saber se existe um índice nesse array com o nome de indice1 Logo fazemos: if ( isset ( $meuArray["indice1"] ) ) echo "Existe"! Como ficaria isso no java?
  6. carcleo

    Enviar json à API

    Pessoal, tenha a seguinte classe java que é a principal que abre o APP package br.net.concertacell; import android.os.Bundle; import android.os.StrictMode; import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import java.io.IOException; import br.net.concertacell.classes.Login; import br.net.concertacell.classes.HttpService; public class Logon extends AppCompatActivity { private EditText login; private EditText senha; private TextView resposta; private String responseJson; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.logon); if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } this.login = (EditText) findViewById(R.id.etLogin); this.senha = (EditText) findViewById(R.id.etSenha); this.resposta = (TextView) findViewById(R.id.tvResposta); } private String token () throws IOException { String login = this.login.getText().toString(); String senha = this.senha.getText().toString(); Login dados = new Login(login, senha); HttpService HttpService = new HttpService("https://acweb.net.br/api/orcamentos/login", dados); String retorno = HttpService.execute().toString(); Log.i("Retosno", retorno.toString()); return retorno; } public void acessar (View view) throws IOException { if (this.login.getText().toString().equals("")) this.resposta.setText("Preenha Login, campo obrigatório!"); else if (this.senha.getText().toString().equals("")) { this.resposta.setText("Preenha Senha, campo obrigatório!"); } else { //abre novo activity if (this.token() == "ok") this.resposta.setText("Prosseguimos!"); else this.resposta.setText("Erro no acesso"); } } } No método token dessa classe tenho a instanciação de uma nova classe que extends AssyncTask. package br.net.concertacell.classes; import android.app.ProgressDialog; import android.content.Context; import android.os.AsyncTask; import android.util.Log; import com.google.gson.Gson; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.Scanner; import br.net.concertacell.classes.Login; public class HttpService extends AsyncTask<String, Integer, String> { private String url; private String jo; public HttpService (String _url, Login _login) { this.url = _url; this.jo = this.gerarString(_login.getLogin(), _login.getSenha() ); } private String gerarString (String login, String senha) { JSONObject jo = new JSONObject(); try { jo.put("login", login); jo.put("senha", senha); } catch (JSONException e) { e.printStackTrace(); } return jo.toString(); } @Override protected String doInBackground(String... args) { String resposta = ""; try { URL url = new URL(this.url); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); conn.setRequestProperty("Accept","application/json"); //conn.setRequestProperty("Authorization", key); conn.setDoOutput(true); conn.setDoInput(true); DataOutputStream os = new DataOutputStream(conn.getOutputStream()); os.writeBytes(this.jo); os.flush(); os.close(); BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String inputLine; String linha=""; while ((inputLine = in.readLine()) != null) { resposta += inputLine; } in.close(); System.out.println(resposta); conn.disconnect(); } catch (Exception e) { e.printStackTrace(); } return resposta; } @Override protected void onPostExecute(String resp) { //dialog.dismiss(); //Toast.makeText(context, resp, Toast.LENGTH_LONG).show(); } @Override protected void onPreExecute() { //dialog = ProgressDialog.show(context, "Aguarde", "Enviando alunos...", true, true); } @Override protected void onProgressUpdate(Integer... text) { // your code } } Aqui eu tenho o problemas: O retorno de String retorno = HttpService.execute().toString();, conforme a assinatura do método, protected String doInBackground(String... args) , deveria ser uma String. No entanto, o que aparece quando eu mando mostrar Log.i("Retosno", retorno.toString()); é I/Retosno: br.net.concertacell.classes.HttpService@c61c842 Porque não aparece String retorno = HttpService.execute().toString();, o retorno de protected String doInBackground(String... args)?
  7. Fernanda Siqueira

    Fizzbuzz

    Dado um número n, para cada número inteiro i no intervalo de 1 a n, inclusive imprima um valor por linha da seguinte maneira: Se eu for múltiplo de 3 e 5, imprima o fizzbuzz Se i for múltiplo de 3(mas não 5), imprima fizz Se i for múltiplo de 5(mas não 3), imprima o Google Buzz Se i não for múltiplo de 3 e 5, imprima o valor de i
  8. JaFosteTuga

    Guardar estado atual de um tabuleiro Reversi

    Boas, estou a tentar criar o jogo Reversi na faculdade Já nos deram o código para mostrar numa console o tabuleiro desenhado, com as peças inicias e deram tambem o código para colocar as peças onde o cursor estiver Agora para prosseguir preciso primeiro de ir guardando o estado do tabuleiro e não estou a conseguir.
  9. Olá Há anos que não programo, e estou a retomar JAVA. Comecei um projecto novo JAVA Maven (já agora, o Maven é diferente dos outros em que sentido?) com o NetBeans 11.2 Está tudo a rolar, mas agora não consigo usar uma biblioteca externa ( javax.mail.internet ). Eis o que estou a fazer: No mail coloquei "import javax.mail.internet;" e tenho um método que o usa. Nas dependências (pom.xls) em "Project files" coloquei: <dependencies> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.2</version> </dependency> </dependencies> Nas dependências ele assume o ficheiro, clico com o botão direito e faço "manually install artifact" e vou buscar o ficheiro que descarrego (versão certa). Continuo a ter um erro: COMPILATION ERROR : ------------------------------------------------------------- LUSA/Main.java:[7,18] cannot find symbol symbol: class internet location: package javax.mail Efectivamente esta localização está errada (só tenho um package com o nome do projecto), o ficheiro está em "dependencies". Alguma ajuda? Obrigado
  10. Serg1i

    Diagonal secundária de uma matriz

    Olá malta programadora. Estou a tirar um curso de programação. Estava a fazer um exercício de matrizes para apresentar no ecrã a diagonal principal. Depois tentei fazer o mesmo mas para a diagonal secundária no entanto tive de recorrer a um ciclo if como podem ver em baixo: System.out.println(); System.out.print("Secondary diagonal: "); for (int i=0; i<n; i++){ for (int j=0; j<n; j++){ if(j+i == n-1){ System.out.print(matriz [i] [j] + " "); } } } Funciona mas pretendo fazer somente com ciclos for: A minha tentativa foi esta: System.out.println(); System.out.print("Secondary diagonal: "); for (int i=0; i<n; i++){ for (int j=n-1; j>=0; j--){ System.out.print(matriz[i+j][i+j] + " "); } } Imprime a diagonal secundária correctamente para o caso de uma matriz de 2x2 mas deu um erro de excepção -> Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 2 out of bounds for length 2 Se for uma matriz 3x3 imprime a diagonal principal de cima para baixo e erro de excepção Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3 Alguém me pode dar uma dica? Obrigado
  11. Tiago Fortuna

    switch case sem metodos

    Boa tarde, Tenho que realizar um trabalho escolar e tenho dúvidas na seguinte parte: switch(opcao) { case 'E': System.out.println("(I)nserir item no fim da lista."); System.out.println("Inserir item na (p)osição n da lista."); System.out.println("Apagar (ú)ltimo item inserido na lista."); System.out.println("Apagar item na posição (N) da lista."); System.out.println("(A)pagar itens da posição m à n da lista."); System.out.println("(L)istar todos os itens."); System.out.println("(V)oltar."); opcao=teclado.next().charAt(0); teclado.nextLine(); break; Tenho que fazer o código para cada uma das letras com outro case mas não estou a perceber como. Podem me ajudar? PS não podemos usar métodos
  12. Sou iniciante em Java e estou tendo dificuldades para executar o algoritmo Stable Marrage de GaleShapley,. Na execução aparece o seguinte erro: Error: Index 3 out of bounds for length 3 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 3 at br.com.entrada.GaleShapley.calcMatches(GaleShapley.java:48) at br.com.entrada.GaleShapley.<init>(GaleShapley.java:33) at br.com.entrada.GaleShapley1.main(GaleShapley1.java:164) Gale Shapley Marriage Algorithm Sized : 3 Segue o código abaixo: import java.io.BufferedReader; import java.io.DataInputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; public class GaleShapley { private int N, engagedCount; private String[][] menPref; private String[][] womenPref; private String[] men; private String[] women; private String[] womenPartner; private boolean[] menEngaged; /** Constructor **/ public GaleShapley (){ } public GaleShapley(String[] m, String[] w, String[][] mp, String[][] wp) { System.out.println("Sized : "+ mp.length); N = mp.length; engagedCount = 0; men = m; women = w; menPref = mp; womenPref = wp; menEngaged = new boolean[N]; womenPartner = new String[N]; calcMatches(); } /** function to calculate all matches **/ private void calcMatches() { while (engagedCount < N) { int free; for (free = 0; free < N; free++) if (!menEngaged[free]) break; for (int i = 0; i < N && !menEngaged[free]; i++) { int index = womenIndexOf(menPref[free]); if (index < womenPartner.length && womenPartner[index] != null ) { womenPartner[index] = men[free]; menEngaged[free] = true; engagedCount++; } else { String currentPartner = womenPartner[index]; if (morePreference(currentPartner, men[free], index)) { womenPartner[index] = men[free]; menEngaged[free] = true; menEngaged[menIndexOf(currentPartner)] = false; } } } } printCouples(); } /** function to check if women prefers new partner over old assigned partner **/ private boolean morePreference(String curPartner, String newPartner, int index) { for (int i = 0; i < N; i++) { if (womenPref[index].equals(newPartner)) return true; if (womenPref[index].equals(curPartner)) return false; } return false; } /** get men index **/ private int menIndexOf(String str) { for (int i = 0; i < N; i++) if (men.equals(str)) return i; return -1; } /** get women index **/ private int womenIndexOf(String str) { for (int i = 0; i < N; i++) if (women.contains(str)) return i; return -1; } /** print couples **/ public void printCouples() { System.out.println("Couples are : "); for (int i = 0; i < N; i++) { System.out.println(womenPartner +" "+ women); } } /** main function **/ public static void main(String[] args) throws IOException{ System.out.println("Gale Shapley Marriage Algorithm\n"); /** list of men **/ String[] m = {"1", "2", "3"}; /** list of women **/ String[] w = {"1", "2", "3"}; /** men preference **/ String[][] mp = null ; /** women preference **/ String[][] wp= null ; try{ FileInputStream fstream = new FileInputStream("src/input.txt"); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; int line=0; int k=0; int n=0; int i=0; while ((strLine = br.readLine()) != null) { if(line==0){ n =Integer.valueOf(strLine.trim()); mp=new String[n][n]; wp=new String[n][n]; line++; } else{ String[] preferences=strLine.split(" "); if(i<n){ mp=preferences; } else{ if(i-n < w.length) { wp[i-n]=preferences; } } i++; } } in.close(); GaleShapley gs = new GaleShapley(m, w, mp, wp); }catch (Exception e){//Catch exception if any e.printStackTrace(); System.err.println("Error: " + e.getMessage()); } } }
  13. Olá pessoal, tenho o seguinte problema: aça um programa que leia as classificações de exame de APROG de uma turma com n alunos (para um array). O número de alunos (n) é inserido pelo utilizador. De seguida, calcule e mostre a média da turma. Finalmente, mostre quantos alunos reprovaram à disciplina (nota <10). O programa deve mostrar a média da turma (formatada com 1 casa decimal) e quantos alunos reprovaram à disciplina, em linhas separadas e com o seguinte formato: media=<media> reprovacoes=<nº de reprovações> input deve ser: 5 12 8 17 19 5 output: media=12.2 reprovacoes=2 Eu consigo calcular as medias porem não sei como encontrar os menores valores digitados que sejam menores que 10 para colocar em reprovações aqui esta o que eu fiz. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double soma = 0; double media; int div = 0; int menor = 0; double nota[] = new double[6]; System.out.println("Digite o nome do aluno"); String nome = sc.next(); System.out.println("Insira as 5 notas"); for (int i = 0; i < 6; i++) { nota[i] = sc.nextDouble(); soma += nota[i]; } div = nota.length; media = (soma / div); if (media >= 10) { System.out.println("media=" + media); System.out.println("reprovado="); } } }
  14. Jacinto

    Dúvida

    Boas, Tenho uma dúvida relativamente ao desenvolvimento de projeto de comunicação em rede. Uma vez que, tenho o programa básico de registo/login e gestão de tickets feito em interface gráfica e eu teria definir do protocolo de comunicação entre cliente e servidor ficando ao meu critério, porém encontro me com bastante dificuldades na adaptação do programa já desenvolvido para aplicar no sistema de comunicação de rede, sendo uma área que não estou grandes dificuldades. Todas as sugestões serão bem-vindas. Obrigado.
  15. ManuelJava

    Manual para aprender Java

    Boas tardes pessoal, gostava de saber qual o melhor manual para aprender Java, isto é, numa versão mais atualizada ou muito recente, ou seja, para não estar e gastar agora uns euros num manual e depois daqui por um ano ser um mono como se costuma dizer, eu andei a ver e encontrei esta, a 5ª Edição, Programação em Java-Curso Completo, do autor: Pedro Coelho, ISBN: 978-972-722-840-9, o que acham deste manual, será bom para quem ainda tem poucos conhecimentos de Java, ou sugerem algum em especial. Digam algo, opiniões são bem vindas.
  16. MMonteiro

    compilar

    Boas pessoal, para executar um ficheiro .java ou .kt no terminal consigo faze-lo mas se tiver mais classes no package como posso fazer para compilar e executar tudo pelo terminal?? tipo tornar tudo num só .jar??
  17. ppulga22

    Pub Sub Pattern

    Olá pessoal. Estou a desenvolver um projeto, e empanquei aqui num detalhe e não estou a ver uma boa maneira de resolver isto. Bem, o projeto consiste em implementar o padrão Publisher Subscriber, a correr via TCP e UDP. Ora bem, eu tenho uma class central, onde armazenamos as mensagens, tópicos e subscribers, e onde estão implementados os métodos principais. Depois, tenho uma class UDPServer, e TCPServer, assim como os clientes. Como estou a trabalhar com singleton na class central, criei uma nova class Driver, só para arrancar ambos os servidores num main(). Posto isto, o meu problema está em partilhar as mensagens, o sistema está a funcionar muito bem, ambos os lados adicionam os subs, e as mensagens publicadas, o problema está em fazer o broadcast. Ou seja, nós recebemos uma mensagem do cliente, do tipo, {"type": pub, "topic": music, "payload": {"name": Valete, "álbum": Serviço Publico, "ano": 2006}}. Aqui o Server vai descodificar a mensagem e enviar para os subs do tópico music. Mas, se receber a mensagem do lado do Server TCP, não consigo enviá-la para o cliente UDP e vice versa. Alguma sugestão? package com.machado.filipe.pubsub.server; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.SocketException; import java.util.HashSet; import java.util.List; import java.util.Set; import org.json.JSONException; import org.json.JSONObject; import com.machado.filipe.pubsub.Message; import com.machado.filipe.pubsub.publisher.Publisher; import com.machado.filipe.pubsub.publisher.PublisherImpl; import com.machado.filipe.pubsub.service.PubSubService; import com.machado.filipe.pubsub.subscriber.Subscriber; import com.machado.filipe.pubsub.subscriber.SubscriberImpl; public class UDPServer { static PubSubService pubSubService; public void run() throws Exception { int serverport = 7777; DatagramSocket udpServerSocket = new DatagramSocket(serverport); System.out.println("Server started...\n"); while(true) { byte[] receiveData = new byte[1024]; DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); udpServerSocket.receive(receivePacket); String clientMessage = (new String(receivePacket.getData())).trim(); InetAddress clientIP = receivePacket.getAddress(); int clientport = receivePacket.getPort(); byte[] sendData = new byte[1024]; decodeCommand(new String(clientMessage)); JSONObject jsonObj = new JSONObject(clientMessage); String type = jsonObj.getString("type"); if(type.equalsIgnoreCase("pub")) { String topic = jsonObj.getString("topic"); JSONObject payload = jsonObj.getJSONObject("payload"); Publisher publisher = new PublisherImpl(); Message message = new Message(topic, payload); publisher.publish(message, pubSubService); Set<Subscriber> _subscribers = PubSubService.instance().getSubscribers(topic); for(Subscriber sub : _subscribers) { sub.getMessagesForSubscriberOfTopic(topic); String response = sub.getMessages().toString(); sendData = response.getBytes(); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, clientIP, sub.getClientport()); udpServerSocket.send(sendPacket); } }else if (type.equalsIgnoreCase("sub")) { String topic = jsonObj.getString("topic"); Subscriber subscriber = new SubscriberImpl(clientIP, clientport); subscriber.addSubscriber(topic, pubSubService); subscriber.getMessagesForSubscriberOfTopic(topic); String response = subscriber.getMessages().toString(); sendData = response.getBytes(); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, clientIP, clientport); udpServerSocket.send(sendPacket); }else if (type.equalsIgnoreCase("unsub")) { String topic = jsonObj.getString("topic"); for (Subscriber sub : PubSubService.instance().getSubscribers(topic)) { if(sub.getClientport() == clientport && sub.getClientIP() == clientIP) { sub.unSubscribe(topic); } } } } } private static void decodeCommand(String jsonString) throws JSONException { JSONObject jsonObject = new JSONObject(jsonString); System.out.println(jsonObject); } } Deixo esta classe para verem como está o server UDP, se precisarem de mais informação ou código, digam algo Obrigado
  18. jorge fonseca

    Jogo de adivinhando o vosso animal

    Exemplo descritivo do jogo: O jogo é cíclico e aumenta conforme os dados inseridos pelo usuário, pode começar com apenas um animal e deve crescer dinamicamente. Abaixo o carácter '-' representa o sistema e o carácter '*' representa o usuário: - Pense em um animal *ok - O animal que você pensou vive na água? *não - Qual animal você pensou? *cachorro - um(a) cachorro _____ mas um(a) baleia não *late - Pense em um animal *ok - O animal que você pensou vive na agua? *não - O animal que você pensou late? *não - Qual animal você pensou? *vaca - um(a) vaca _____ mas um(a) baleia não *rumina - Pense em um animal *ok - O animal que você pensou vive na água? *não - O animal que você pensou late? *sim - O animal que você pensou é um cachorro? *sim - Acertei! - Quer continuar jogando? *sim ----Iniciar novamente o ciclo Fico grato na ajuda do desenvolvimento deste ou ao meno na elucidação da ideia.
  19. Boa tarde a todos, Estou a tentar implementar algo muito simples: uma forma geométrica a mover-se. No entanto, não estou a conseguir que o método super.paintComponent() funcione como deveria. O que se pretende é que a forma geométrica seja desenhada e re-desenhada para dar a sensação de movimento, isto sem que cada forma desenhada fique visível no ecrã (apenas a última forma desenhada deverá ser visível em cada milisegundo). No entanto, o que estou a obter é um rasto de formas desenhadas no ecrã. Invocar o super.paintComponent() deveria eliminar isto, pois é ele o responsável por redesenhar (apagar) o background do JPanel correto? Segue o código que tenho implementado (o código foi bastante simplificado, para ajudar a análise): public class Animated_Shape_Test extends JFrame { public static void main(String args[]) throws IOException { new Animated_Shape_Test(); } public Animated_Shape_Test() throws IOException { this.setSize(500, 500); this.setPreferredSize(new Dimension(500, 500)); this.setLocation(new Point(430, 150)); this.setTitle("Database Launcher v1.0"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setResizable(false); this.setVisible(true); DBPanel panel = new DBPanel(); getContentPane().add(panel, BorderLayout.CENTER); } } final class DBPanel extends JPanel implements Runnable { int musicShapePosX = 85; int musicShapePosY = 100; int SEGMENT_SHAPE_LENGTH = 50; int SHAPE_HEIGHT = 10; float SHAPE_SPEED = 7.5f; CustomShapeButton musicShapeButton = new CustomShapeButton(musicShapePosX, musicShapePosY, SEGMENT_SHAPE_LENGTH, SHAPE_HEIGHT); private ArrayList<Shape> shapes = null; protected DBPanel() throws IOException { shapes = new ArrayList(); shapes.add(musicShapeButton); this.setOpaque(true); this.setFocusable(true); startThread(); } public void startThread() { Thread t = new Thread(this); t.start(); } @Override public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setColor(getBackground().darker()); g2.fillRect(0, 0, getWidth(), getHeight()); g2.setColor(Color.BLACK); g2.draw(musicShapeButton); } public void delay(int milliseconds) { try { Thread.sleep(milliseconds); } catch (InterruptedException e) { } } @Override public void run() { while (true) { delay(35); animateButtonShapeMusic(); repaint(); } } public void animateButtonShapeMusic() { if (musicShapePosY < 228) { musicShapePosY = (int)(musicShapePosY + SHAPE_SPEED); musicShapeButton.drawShape(musicShapePosX, musicShapePosY, SEGMENT_SHAPE_LENGTH, SHAPE_HEIGHT); } } } Obrigado desde já. Cumps.
  20. nuno35

    Java funcional

    Boa Tarde estou a precisar aqui de uma ajuda num exercício de java funcional Portanto tenho que escrever um método que recebe uma stream um predicado e uma funçao de elementos do mesmo tipo e tem de devolver uma stream com o cada elemento do stream original convertido pela função se passar no predicado os elementos que nao passem no predicado devem aparecer inalterados. convert(Stream.of(1,2,3,4,5,6), (Integer x) -> x > 2, (Integer x) -> x * x) .foreach(System.out::println); int soma = Stream.iterate(1, passo -> passo + 1) .limit(6) .filter(x -> x>2) .map(x -> x * x) Tenho estas duas mas a segunda tira me os elementos que nao passam no predicado nunca os mostra Desde já obrigado
  21. marco rolim

    JOptionPane

    Usando a classe OptionPaner para entrada de dados, faça uma classe que receba dois valores inteiros. O primeiro valor corresponde à quantidade de pontos do líder do campeonato brasileiro de futebol. O segundo valor corresponde à quantidade de pontos do time lanterna. Considerando que cada vitória vale 3 pontos, elabore uma classe que calcule o número de vitórias necessárias para que o time lanterna alcance (ou ultrapasse) o líder. Por exemplo, supondo que as quantidades de ponto fornecidas sejam 40 e 22, então o número de vitórias apresentada na saída deverá ser 6, pois (40-22) / 3 = 6.
  22. ppulga22

    Message Hub

    Boas malta. Eu sou novo aqui e provavelmente há alguma forma simples de fazer isto, mas estou com algumas dúvidas e neste momento quaisquer luzes eram fixes para mim. Tenho de desenvolver um Message Hub em memória, que deve suportar os serviços subscribe e publish em tipos de dados aleatórios via TCP e UDP. Aqui, no tipo de dados estava a pensar em trabalhar a informação em JSON, as conecções TCP e UDP, usar o ServerSocket e DatagramSocket para isto. O Message Hub em memória, deve ser uma base de dados com um HashMap implementado? E depois o publish e o subscribe não sei bem como lhe pegar. Alguém me consegue dar uma ajuda? Obrigado
  23. Grupo Casais

    Instalaçao java

    O meu pc tem instalado o Windows 10 de 64bits e tentei instalar o java. Apos finalizar com sucesso a instalação tentei usar varias plataformas de trabalho nas quais necessito obrigatoriamente para trabalhar. O site não assume o java e diz que não tenho instalado. No site da java fui a pagina de verificação e dava erro mesmo endo instalado. Ja reinstalei o java, experimentei varias versões e browsers dando sempre erro. Sugestões ?
  24. Ricardo Cardoso

    Ajuda

    Boas pessoal, tudo bem? Estou a ter um erro num programa que estou a desenvolver e não sei porque, o erro é este ele vai buscar o id do utilizador que entrou no sistema que neste caso é 1 e está certo porém no output mostra 0 como faço para corrigir este erro?
  25. Douoglas

    Arvore Binaria

    Alguém poderia me ajudar com esses dois exercícios, pode ser em C ou java. 1) Implemente um programa que leia dados do teclado e insira numa árvore binária balanceada e a cada inserção faça o atravessamento da árvore em ordem prefixa mostrando os elementos da árvore. Para cada nó da árvore mostre seu valor e altura na árvore. 2) Implemente um programa que gere 10000 números aleatórios, entre 0 e 100000, e que retorne o número de repetições. O programa deve ser baseado numa árvore binária de busca. Obrigado !
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.