Jump to content
  • ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By gabefgonc
      Olá, quando tento fazer um jar com os códigos a seguir, e abro o executável, ele lança a seguinte exceção:
      java.io.FileNotFoundException: res/world/world1.txt (Arquivo ou diretório inexistente)
      at java.base/java.io.FileInputStream.open0(Native Method)
      at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
      at java.base/java.io.FileInputStream.(FileInputStream.java:157)
      at java.base/java.io.FileInputStream.(FileInputStream.java:112)
      at java.base/java.io.FileReader.(FileReader.java:60)
      at br.gabefgonc.javaxswingtests.utils.Utils.loadFileAsString(Utils.java:13)
      at br.gabefgonc.javaxswingtests.worlds.World.loadWorld(World.java:68)
      at br.gabefgonc.javaxswingtests.worlds.World.(World.java:25)
      at br.gabefgonc.javaxswingtests.main.states.GameState.(GameState.java:20)
      at br.gabefgonc.javaxswingtests.main.Game.init(Game.java:95)
      at br.gabefgonc.javaxswingtests.main.Game.run(Game.java:45)
      at java.base/java.lang.Thread.run(Thread.java:834)
      java.lang.NumberFormatException: For input string: “”
      at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
      at java.base/java.lang.Integer.parseInt(Integer.java:662)
      at java.base/java.lang.Integer.parseInt(Integer.java:770)
      at br.gabefgonc.javaxswingtests.utils.Utils.parseInt(Utils.java:26)
      at br.gabefgonc.javaxswingtests.worlds.World.loadWorld(World.java:71)
      at br.gabefgonc.javaxswingtests.worlds.World.(World.java:25)
      at br.gabefgonc.javaxswingtests.main.states.GameState.(GameState.java:20)
      at br.gabefgonc.javaxswingtests.main.Game.init(Game.java:95)
      at br.gabefgonc.javaxswingtests.main.Game.run(Game.java:45)
      at java.base/java.lang.Thread.run(Thread.java:834)
      Exception in thread “Thread-0” java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
      at br.gabefgonc.javaxswingtests.worlds.World.loadWorld(World.java:72)
      at br.gabefgonc.javaxswingtests.worlds.World.(World.java:25)
      at br.gabefgonc.javaxswingtests.main.states.GameState.(GameState.java:20)
      at br.gabefgonc.javaxswingtests.main.Game.init(Game.java:95)
      at br.gabefgonc.javaxswingtests.main.Game.run(Game.java:45)
      at java.base/java.lang.Thread.run(Thread.java:834)
      códigos:
      World.java:
      package br.gabefgonc.javaxswingtests.worlds;
      import br.gabefgonc.javaxswingtests.entities.EntityManager;
      import br.gabefgonc.javaxswingtests.entities.Player;
      import br.gabefgonc.javaxswingtests.entities.Tree;
      import br.gabefgonc.javaxswingtests.inventory.Inventory;
      import br.gabefgonc.javaxswingtests.items.Item;
      import br.gabefgonc.javaxswingtests.items.ItemManager;
      import br.gabefgonc.javaxswingtests.main.Game;
      import br.gabefgonc.javaxswingtests.main.Handler;
      import br.gabefgonc.javaxswingtests.main.tiles.Tile;
      import br.gabefgonc.javaxswingtests.utils.Utils;
      import java.awt.*;
      public class World {
      private int width, height, spawnX,spawnY;
      private int[][] tiles;
      private Handler handler;
      private EntityManager entityManager;
      private ItemManager itemManager;
      public World(Handler handler, String path){
      this.handler = handler;
      entityManager = new EntityManager(handler, new Player(handler, 0, 0));
      loadWorld(path);
      entityManager.getPlayer().setX(spawnX);
      entityManager.getPlayer().setY(spawnY);
      itemManager = new ItemManager(this.handler); } public void tick(){ entityManager.tick(); itemManager.tick(); } public void render(Graphics g){ int xStart = (int) Math.max(0, handler.getCamera().getxOffset() / Tile.TILE_WIDTH); int xEnd = (int) Math.min(width, (handler.getCamera().getxOffset() + handler.getWidth()) / Tile.TILE_WIDTH + 1); int yStart = (int) Math.max(0, handler.getCamera().getyOffset() / Tile.TILE_HEIGHT); int yEnd = (int) Math.min(height, (handler.getCamera().getyOffset() + handler.getHeight()) / Tile.TILE_HEIGHT + 1); for(int y = yStart; y < yEnd; y++){ for(int x = xStart; x < xEnd; x++){ getTile(x, y).render(g, (int) (x * Tile.TILE_WIDTH - handler.getCamera().getxOffset()), (int) (y * Tile.TILE_HEIGHT - handler.getCamera().getyOffset())); } } itemManager.render(g); entityManager.render(g); } public Tile getTile(int x, int y){ Tile t; if(x < width && y < height) t = Tile.tiles[tiles[x][y]]; else t = null; if(t == null){ return Tile.grassTile; } return t; } private void loadWorld(String path){ String file = Utils.loadFileAsString(path); String[] tokens = file.split("\\s+"); System.out.println(tokens[0]); width = Utils.parseInt(tokens[0]); height = Utils.parseInt(tokens[1]); spawnX = Utils.parseInt(tokens[2]); spawnY = Utils.parseInt(tokens[3]); tiles = new int[width][height]; for(int y = 0; y < height; y++){ for(int x = 0; x < width; x++){ tiles[x][y] = Utils.parseInt(tokens[(x + y * width) + 4]); if(Utils.parseInt(tokens[(x + y * width) + 4]) == 5){ entityManager.addEntity(new Tree(handler, x * Tile.TILE_WIDTH, y * Tile.TILE_HEIGHT)); } } } } public int getWidth() { return width; } public int getHeight() { return height; } public EntityManager getEntityManager(){ return entityManager; } public Handler getHandler() { return handler; } public void setHandler(Handler handler) { this.handler = handler; } public ItemManager getItemManager() { return itemManager; } public void setItemManager(ItemManager itemManager) { this.itemManager = itemManager; } }
      Utils.java:
      package br.gabefgonc.javaxswingtests.utils;
      import java.io.BufferedReader;
      import java.io.FileReader;
      import java.io.IOException;
      public class Utils {
      public static String loadFileAsString(String path){ StringBuilder builder = new StringBuilder(); ClassLoader classLoader = ClassLoader.getSystemClassLoader(); try { BufferedReader br = new BufferedReader(new FileReader(path)); String line; while((line = br.readLine()) != null){ builder.append(line + "\n"); } }catch(IOException e){ e.printStackTrace(); } return builder.toString(); } public static int parseInt(String number){ try{ return Integer.parseInt(number); }catch(NumberFormatException e){ e.printStackTrace(); return 0; } } }
      GameState.java:
      package br.gabefgonc.javaxswingtests.main.states;
      import br.gabefgonc.javaxswingtests.entities.EntityManager;
      import br.gabefgonc.javaxswingtests.entities.Player;
      import br.gabefgonc.javaxswingtests.entities.Tree;
      import br.gabefgonc.javaxswingtests.gfx.ImageLoader;
      import br.gabefgonc.javaxswingtests.gfx.SpriteSheet;
      import br.gabefgonc.javaxswingtests.main.Game;
      import br.gabefgonc.javaxswingtests.main.Handler;
      import br.gabefgonc.javaxswingtests.main.tiles.Tile;
      import br.gabefgonc.javaxswingtests.worlds.World;
      import java.awt.*;
      public class GameState extends State {
      private World world;
      public GameState(Handler handler){ super(handler); world = new World(handler, "res/world/world1.txt"); handler.setWorld(world); } public void tick() { world.tick(); } public void render(Graphics g) { world.render(g); } }
      classPath:
      /home/gabriel/Programacao/Games/JavaxSwingTests/res
      Obrigado!
    • By brunoogm
      Boa noite pessoal, estou com uma ideia de aplicativo para construir durante a faculdade.
       
      A ideia basicamente é um assistente virtual de turismo, onde o aplicativo deverá falar os dados históricos da cidade (pontos de curiosidade
      e etc.) assim que identificar que o usuário está próximo desse ponto.
       
      Por exemplo, ao me aproximar de um lugar histórico da cidade o aplicativo começa a contar coisas relacionadas aquele lugar...
      Simplificando a ideia é isso...
       
      Eu gostaria de uma ajuda de por onde começar, quais tecnologias pesquisar, linguagens que podem vir a ajudar, talvez algum recurso de código aberto
      ou qualquer outra coisa que me ajude a dar o pontapé inicial.
       
      Qualquer ajuda é bem vinda.
       
      Agradeço a todos!
    • By Marcosjrpb
      ...
    • By godrugal
      Eu tenho minha tela de busca. Ao digitar, ele traz o resultado da busca. O resultado é mostrado em uma recyclerview. Meu Recyclerview foi modelado com algumas textviews e uma imagem. Queria que ao tocar no item da Recyclerview, que o texto da textview fosse passado para outra fragment (tela) que tenho. Consigo fazer até a parte da chamada da tela. Só não consigo resgatar o texto da textview na outra tela. Cheguei até a instanciar as textviews da outra tela que esta modelada o recycler.
      Minha classe do adaptador:
       
      public class CursosAdapterImg extends RecyclerView.Adapter<CursosAdapterImg.CursosHolder> { List<Curso>listaCursos; private OnNoteListener mOnNoteListener; public CursosAdapterImg(List<Curso> listaCursos, Context context,OnNoteListener onNoteListener) { this.listaCursos = listaCursos; this.mOnNoteListener = onNoteListener; } @NonNull @Override public CursosHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View vista = LayoutInflater.from(parent.getContext()).inflate(R.layout.lista_cursos_img, parent, false); RecyclerView.LayoutParams layoutParams = new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT ); vista.setLayoutParams(layoutParams); return new CursosHolder(vista, mOnNoteListener); } @Override public void onBindViewHolder(@NonNull CursosHolder holder, int position) { // holder.txtCodigo.setText(listaCursos.get(position).getCodigo().toString()); holder.txtNome.setText(listaCursos.get(position).getNome().toString()); holder.txtProfessor.setText(listaCursos.get(position).getProfessor().toString()); holder.txtCategoria.setText(listaCursos.get(position).getCategoria().toString()); if(listaCursos.get(position).getImagem()!=null){ holder.idImagem.setImageBitmap(listaCursos.get(position).getImagem()); }else{ holder.idImagem.setImageResource(R.drawable.sem_foto); } } @Override public int getItemCount() { return listaCursos.size(); } public class CursosHolder extends RecyclerView.ViewHolder implements View.OnClickListener { TextView txtNome,txtCodigo,txtProfessor, txtCategoria; ImageView idImagem; OnNoteListener onNoteListener; public CursosHolder(View itemView,OnNoteListener onNoteListener) { super(itemView); txtNome= (TextView) itemView.findViewById(R.id.nomeCurso); //txtCodigo= (TextView) itemView.findViewById(R.id.txtCodigo); txtProfessor= (TextView) itemView.findViewById(R.id.Professor); txtCategoria= (TextView) itemView.findViewById(R.id.Categoria); idImagem= itemView.findViewById(R.id.idImagem); this.onNoteListener = onNoteListener; itemView.setOnClickListener(this); } @Override public void onClick(View view) { onNoteListener.onNoteClick(getAdapterPosition()); } } public interface OnNoteListener{ void onNoteClick(int position); } } Abaixo a minha tela da busca que retorna uma Recyclerview:
       
      return vista; } private void carregarWEBService() { progresso = new ProgressDialog(getContext()); progresso.setMessage("Buscando..."); progresso.show(); String url = "http://192.168.0.5/webservices/consultarListaImagemUrlNome.php?nome="+ campoNome.getText().toString(); jsonObjectReq = new JsonObjectRequest(Request.Method.GET, url, null, this, this); request.add(jsonObjectReq); } @Override public void onErrorResponse(VolleyError error) { progresso.hide(); Toast.makeText(getContext(), "Não foi possível listar os cursos " +error.toString() , Toast.LENGTH_SHORT).show(); Log.i("ERROR", error.toString()); } @Override public void onResponse(JSONObject response) { progresso.hide(); Curso curso = null; JSONArray json = response.optJSONArray("curso"); // nome da tabela curso try { for(int i=0; i<json.length();i++){ curso = new Curso(); JSONObject jsonObject = null; jsonObject = json.getJSONObject(i); curso.setNome(jsonObject.optString("nome")); curso.setProfessor(jsonObject.optString("professor")); curso.setCategoria(jsonObject.optString("categoria")); curso.setDado(jsonObject.optString("imagem")); listaCursos.add(curso); } progresso.hide(); CursosAdapterImg adapter = new CursosAdapterImg(listaCursos,getContext(),this); recyclerCursos.setAdapter(adapter); }catch (JSONException e){ e.printStackTrace(); progresso.hide(); Toast.makeText(getContext(), "Não foi possível listar os cursos " +response , Toast.LENGTH_SHORT).show(); } } @Override public void onNoteClick(int position) { listaCursos.get(position); //Falta passar os parâmetros consultarCursoUrl fragmentConsulta = new consultarCursoUrl(); /* Estava testando nesse bloco passagem de parâmetros para outra fragment Bundle arguments = new Bundle(); arguments.putString( "professor" , "Testando a passagem"); fragmentConsulta.setArguments(arguments); */ FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.content_main,fragmentConsulta).commit(); } E esse código abaixo, é minha tela que é chamada após tocar no item do recyclerview:
       
      @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View vista = inflater.inflate(R.layout.fragment_consultar_curso_url, container, false); campoCodigo = vista.findViewById(R.id.codigo); campoNome = vista.findViewById(R.id.txt_nome); campoCategoria = vista.findViewById(R.id.txt_categoria); campoProfessor = vista.findViewById(R.id.txt_professor); btnAtualizar = vista.findViewById(R.id.btnAtualizar); btnDeletar = vista.findViewById(R.id.btnDeletar); btnConsultar = vista.findViewById(R.id.btnConsultar); imgFoto = vista.findViewById(R.id.imagemId); /* Estava fazendo teste de parametros nesse bloco Bundle arguments = getArguments(); String nomeProfessor = arguments.getString("professor"); campoNome.setText(nomeProfessor); */ request = Volley.newRequestQueue(getContext()); btnConsultar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { carregarWEBService(); } }); if(solicitarPermissoesVersoesSuperiores()){ imgFoto.setEnabled(true); }else{ imgFoto.setEnabled(false); } imgFoto.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { carregarDialog(); } }); btnAtualizar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { carregarWEBServiceAtualizar(); } }); btnDeletar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { carregarWEBServiceDeletar(); } }); return vista; }  
    • By vinihhylian0103
      Estou fazendo um projeto de Delphi escola e nele tenho que gravar dados no SQLITE. Estou usando o seguinte código:
       
      unit UClube; interface uses   System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,   FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,   FMX.ListView.Types, FMX.ListView.Appearances, FMX.ListView.Adapters.Base,   FMX.StdCtrls, FMX.ListView, FMX.DateTimeCtrls, FMX.Edit,   FMX.Controls.Presentation, FMX.TabControl, FireDAC.Stan.Intf,   FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf,   FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys,   FireDAC.Phys.SQLite, FireDAC.Phys.SQLiteDef, FireDAC.Stan.ExprFuncs,   FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt,   FireDAC.FMXUI.Wait, System.Rtti, System.Bindings.Outputs, Fmx.Bind.Editors,   Data.Bind.EngExt, Fmx.Bind.DBEngExt, Data.DB, FireDAC.Comp.DataSet,   Data.Bind.Components, Data.Bind.DBScope, FireDAC.Comp.UI, FireDAC.Comp.Client, System.IOUtils; type   TForm1 = class(TForm)     TabControl1: TTabControl;     TabItem2: TTabItem;     tb1: TTabItem;     lvSocio: TListView;     btnSalvar: TButton;     btnCancelar: TButton;     btnEditar: TButton;     btnExcluirr: TButton;     Panel1: TPanel;     edtDataNasc: TDateEdit;     edtCod: TEdit;     edtNome: TEdit;     edtRg: TEdit;     edtCPF: TEdit;     edtEndereco: TEdit;     Label1: TLabel;     Label2: TLabel;     Label3: TLabel;     Label4: TLabel;     Label5: TLabel;     labwl: TLabel;     NOME: TLabel;     Button5: TButton;     Panel2: TPanel;     edtDataA: TDateEdit;     edtCodSocio: TEdit;     Label6: TLabel;     Label10: TLabel;     Label11: TLabel;     Label12: TLabel;     rdbSocio: TRadioButton;     edtNomeA: TEdit;     btnNovoA: TButton;     edtHoraIA: TEdit;     Label7: TLabel;     Edit7: TEdit;     edtHoraFA: TLabel;     edtDescricaoA: TEdit;     Label9: TLabel;     edtValorA: TEdit;     btnCancelarA: TButton;     btnEditarA: TButton;     btnExcluirA: TButton;     btnSalvarA: TButton;     lvAgendamento: TListView;     FDConnPrincipal: TFDConnection;     qrSocio: TFDQuery;     qrAgendamento: TFDQuery;     FDPhysSQLiteDriverLink1: TFDPhysSQLiteDriverLink;     FDGUIxWaitCursor1: TFDGUIxWaitCursor;     BindSourceDB1: TBindSourceDB;     BindingsList1: TBindingsList;     LinkListControlToField1: TLinkListControlToField;     LinkControlToField1: TLinkControlToField;     LinkControlToField2: TLinkControlToField;     LinkControlToField3: TLinkControlToField;     LinkControlToField4: TLinkControlToField;     LinkControlToField5: TLinkControlToField;     LinkControlToField6: TLinkControlToField;     qrSocioID: TFDAutoIncField;     qrSocioNOME: TStringField;     qrSocioRG: TStringField;     qrSocioCPF: TStringField;     qrSocioENDERECO: TStringField;     qrSocioDATA_NASC: TDateField;     qrSocioCODIGO: TIntegerField;     qrAgendamentoID: TFDAutoIncField;     qrAgendamentoNOME: TStringField;     qrAgendamentoCODIGO: TIntegerField;     qrAgendamentoDESCRICAO: TWideMemoField;     qrAgendamentoDATA: TDateField;     qrAgendamentoHORA_INICIO: TStringField;     qrAgendamentoHORARIO_FIM: TStringField;     qrAgendamentoVALOR: TLargeintField;     qrAgendamentoSOCIO: TStringField;     procedure rdbSocioChange(Sender: TObject);     procedure btnSalvarClick(Sender: TObject);     procedure Button5Click(Sender: TObject);     procedure btnCancelarClick(Sender: TObject);     procedure btnEditarClick(Sender: TObject);     procedure btnExcluirrClick(Sender: TObject);     procedure FormShow(Sender: TObject);   private     { Private declarations }   public     { Public declarations }   end; var   Form1: TForm1; implementation {$R *.fmx} procedure TForm1.btnCancelarClick(Sender: TObject); begin qrSocio.Cancel; Panel1.Enabled := False; end; procedure TForm1.btnEditarClick(Sender: TObject); begin if qrSocio.RecordCount > 0 then begin   qrSocio.Edit;   Panel1.Enabled := True;   edtNome.SetFocus; end; end; procedure TForm1.btnExcluirrClick(Sender: TObject); begin if qrSocio.RecordCount = 0 then abort; qrSocio.Delete; ShowMessage('Dados excluídos!'); end; procedure TForm1.btnSalvarClick(Sender: TObject); begin if edtNome.Text = '' then begin ShowMessage('O nome não pode estar vázio!'); edtNome.SetFocus; abort; end; qrSocio.Post; qrSocio.Refresh; Panel1.Enabled := False; end; procedure TForm1.Button5Click(Sender: TObject); begin Panel1.Enabled := True; edtNome.SetFocus; qrSocio.Append; end; procedure TForm1.FormShow(Sender: TObject);   begin   FDConnPrincipal.Connected := True;   try  {$IF DEFINED (IOS) or DEFINED (ANDROID)}   FDConnPrincipal.Params.Values['DATABASE'] := TPath.Combine(TPath.GetDocumentsPath, 'BD_CLUBE.s3db');   {$ENDIF}   except on E: Exception do   ShowMessage(e.Message);   end;   qrSocio.Open(); end; procedure TForm1.rdbSocioChange(Sender: TObject); begin  if rdbSocio.IsChecked = true then  begin  edtCodSocio.Enabled := true;  edtCodSocio.SetFocus;  end; end; end.
      E recebo o seguinte erro: 
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.