user interface – Java Programming II Course GUI doesn’t work

I’m doing the Java Programming II MOOC course, and I’m having some problems with the section on GUIs. Whenever I copy and paste the code for the GUI into netbeans, it just results in a bunch of errors, and I have no idea how to fix them. The errors are like “package javafx.application does not exist,” and I don’t know how to make it exist. Do I need to install or import something to make it work?

Here’s a screenshot of what my code looks like right now. It’s just copy and pasted from the website, but you can see where the errors are:
GUI code in Netbeans

java – Como faço para adicionar dinamicamente população e cidade em um MAP e depois resgatar a população pelo nome da cidade?

O usuário informa a cidade e a população que serão salvos em um Map<String,Integer>, em seguida obtém a população informando a cidade.

public class Question3 {

    public static void main(String() args) {

        
        List<Cidades> listCidades = new ArrayList<Cidades>();
        
        Map<String, List<Cidades>> mapcidades = new HashMap<String, List<Cidades>>();
        
        int escolha = JOptionPane.showConfirmDialog(null,"Deseja cadastrar cidade e população");
        
        if (escolha == 0) { 
            
            String cidade = JOptionPane.showInputDialog("Qual cidade");
            String populacao = JOptionPane.showInputDialog("Qual populaçao");
            
            listCidades.add(cidade);
            mapcidades.put(populacao, listCidades );
            
        }

        
        for (Cidades cidades2 : listCidades) {
            mapcidades.get(mapcidades);
        }

    }
}

java – Como inserir Spinner em bottomsheet?

Estou fazendo um código em Java para android para colocar um Spinner no bottom sheet, mas por algum motivo ele não funciona

private BottomSheetDialog bottomSheet
            bottomSheetDialog = new BottomSheetDialog(SelectAccountActivity.this,R.style.BottomSheetBank);
            View sheetView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.bottom_sheet_layout,
                    findViewById(R.id.bank_sheet));
            bottomSheetDialog.setContentView(sheetView);

            View spinnerView = getLayoutInflater().inflate(R.layout.bottom_sheet_layout, null);
            Spinner spinner = (Spinner) spinnerView.findViewById(R.id.spinnerBank);
            ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                    R.array.type_account, android.R.layout.simple_spinner_item);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            spinner.setAdapter(adapter);
            bottomSheetDialog.show();
      ```
   

java – Optional int parameter ‘id’ is present but cannot be translated into a null value due to being declared as a primitive type

me encuentro con un error que no sé por donde cogerlo. Estoy realizando un api/rest de android studio (RetroFit) con SpringBoot (como servidor).
Resulta que me encuentro con este error:

 Optional int parameter 'id' is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.

Expongo retrofit interface:

 @PUT("editPlayer{id}")
    Call<PlayerDto> editPlayer(@Body PlayerDto player, @Path("id") int id);

Expongo llamada al servidor:

Settings.RESPONSE_CLIENT.getService()
.editPlayer(editedPlayer, 53)
.enqueue(new Callback<PlayerDto>() {
   @Override
   public void onResponse(Call<PlayerDto> call, Response<PlayerDto> response) {
      editedPlayer = response.body();
      typeError = 0;
   }

   @Override
   public void onFailure(Call<PlayerDto> call, Throwable t) {
      Log.e("Error: ", t.getMessage());
      typeError = 2;
   }
});

Expongo servidor Controller:

@PutMapping("/editPlayer{id}")
    public Player editPlayer(@RequestBody Player player, @Param("id") int id) {
        return service.editPlayer(player.getUsername(), id);
    }

Expongo servidor PlayerService:

public Player editPlayer(String username, int id) {

        repoPlayer.editUserNamePlayer(username, id);
        Optional<Player> player = repoPlayer.findById(id);

        return player.get();
    }

Expongo IPlayerRepository, aunque solo es la “Query” :

@Modifying
    @Query("UPDATE Player p SET p.username= :username WHERE p.id= :id")
    public void editUserNamePlayer(@Param("username")String username, @Param("id") Integer id);

Realizo pruebas con Insomnia y no tengo ningún problema adjunto imagen:
imagen de captura test insomnia put api/rest

Pero no tengo manera de enviar la id desde android studio, parece que se le envia “null”.
Ni ingresandolo a mano ni recogiendolo por parámetro.

Necesito ayuda, muchas gracias de antemano.

java – Id e Produto ficando null quando salvo dados Many To One

Sempre que eu tenho criar uma Lista de itemPedido e usar ele em uma mapper para request, ela acaba como id e produto null. Já trackei com o debugger e ele não pega a referência com o idProduto que eu coloco no Postman. Sou novo nisso então certo q estou deixando passar algo.

O processo seria: Criar um Pedido, que possui uma lista de itemPedido com os atributos Produto e quantidade. Mas o Produto fica como null.

Classe Pedido:

”’
@Entity
@AllArgsConstructor
@NoArgsConstructor
public class Pedido {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Valid
@ManyToOne
@JoinColumn(name = "id_usuario_solicitante")
private Usuario solicitante;

@Valid
@ManyToOne
@JoinColumn(name = "id_endereco")
private Endereco enderecoEntrega;

@Valid
@ManyToOne
@JoinColumn(name = "id_estabelecimento", nullable = false)
private Estabelecimento estabelecimento;

@Valid
@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinColumn(name = "id_pedido")
private List<ItemPedido> itensPedido;

@Valid
@Enumerated(EnumType.STRING)
private FormaPagamento formaPagamento;

@Enumerated(EnumType.STRING)
private StatusPedido status;

@JsonFormat(pattern = "dd/MM/yyyy HH:mm:ss")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
private LocalDateTime horarioSolicitacao;

@JsonFormat(pattern = "dd/MM/yyyy HH:mm:ss")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
private LocalDateTime horarioSaiuParaEntrega;

@JsonFormat(pattern = "dd/MM/yyyy HH:mm:ss")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
private LocalDateTime horarioEntrega;

@JsonFormat(pattern = "dd/MM/yyyy HH:mm:ss")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
private LocalDateTime horarioCancelamento;

private BigDecimal valorTotal;

@Valid
@ManyToOne
@JoinColumn(name = "id_entregador")
private Entregador entregador;

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public Usuario getSolicitante() {
    return solicitante;
}

public void setSolicitante(Usuario solicitante) {
    this.solicitante = solicitante;
}

public Endereco getEnderecoEntrega() {
    return enderecoEntrega;
}

public void setEnderecoEntrega(Endereco enderecoEntrega) {
    this.enderecoEntrega = enderecoEntrega;
}

public Estabelecimento getEstabelecimento() {
    return estabelecimento;
}

public void setEstabelecimento(Estabelecimento estabelecimento) {
    this.estabelecimento = estabelecimento;
}

public List<ItemPedido> getItensPedido() {
    return itensPedido;
}

public void setItensPedido(List<ItemPedido> itensPedido) {
    this.itensPedido = itensPedido;
}

public FormaPagamento getFormaPagamento() {
    return formaPagamento;
}

public void setFormaPagamento(FormaPagamento formaPagamento) {
    this.formaPagamento = formaPagamento;
}

public StatusPedido getStatus() {
    return status;
}

public void setStatus(StatusPedido status) {
    this.status = status;
}

public LocalDateTime getHorarioSolicitacao() {
    return horarioSolicitacao;
}

public void setHorarioSolicitacao(LocalDateTime horarioSolicitacao) {
    this.horarioSolicitacao = horarioSolicitacao;
}

public LocalDateTime getHorarioSaiuParaEntrega() {
    return horarioSaiuParaEntrega;
}

public void setHorarioSaiuParaEntrega(LocalDateTime horarioSaiuParaEntrega) {
    this.horarioSaiuParaEntrega = horarioSaiuParaEntrega;
}

public LocalDateTime getHorarioEntrega() {
    return horarioEntrega;
}

public void setHorarioEntrega(LocalDateTime horarioEntrega) {
    this.horarioEntrega = horarioEntrega;
}

public LocalDateTime getHorarioCancelamento() {
    return horarioCancelamento;
}

public void setHorarioCancelamento(LocalDateTime horarioCancelamento) {
    this.horarioCancelamento = horarioCancelamento;
}

public BigDecimal getValorTotal() {
    return valorTotal;
}

public void setValorTotal(BigDecimal valorTotal) {
    this.valorTotal = valorTotal;
}

public Entregador getEntregador() {
    return entregador;
}

public void setEntregador(Entregador entregador) {
    this.entregador = entregador;
}

}”’

Classe ItemPedido:

”’@Entity
public class ItemPedido {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToOne
@JoinColumn(name = "id_produto")
private Produto produto;

private Integer quantidade;

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public Produto getProduto() {
    return produto;
}

public void setProduto(Produto produto) {
    this.produto = produto;
}

public Integer getQuantidade() {
    return quantidade;
}

public void setQuantidade(Integer quantidade) {
    this.quantidade = quantidade;
}

}
”’

Classe CriarPedidoRequest:

”’
@Getter
@Setter
@AllArgsConstructor
public class CriarPedidoRequest {

private Long idPedido;
private Long idEstabelecimento;
private Long idUsuarioSolicitante;
private Long idEnderecoEntrega;
private List<ItemPedido> itens;
private FormaPagamento formaPagamento;
private StatusPedido status;
private LocalDateTime horarioSolicitacao;
private LocalDateTime horarioSaiuParaEntrega;
private LocalDateTime horarioEntrega;
private LocalDateTime horarioCancelamento;
private BigDecimal valorTotal;
private Long idEntregador;
private Long idProduto;
private Integer quantidade;

}”’

Classe CriarPedidoService:

”’
@Service
public class CriarPedidoService {

@Autowired
private PedidoRepository pedidoRepository;

@Autowired
private CriarPedidoMapper criarPedidoMapper;

@Autowired
private ProdutoRepository produtoRepository;

@Autowired
private ItemPedidoRepository itemPedidoRepository;

public Pedido salvarPedido(CriarPedidoRequest request) {

    Pedido pedido = criarPedidoMapper.mapear(request);
    pedido.setStatus(StatusPedido.EM_PREPARO);
    pedido.setHorarioSolicitacao(LocalDateTime.now());

    Produto produto = produtoRepository.findById(request.getIdProduto()).get();

    List<ItemPedido> itens = new ArrayList<>();
    ItemPedido itemPedido = new ItemPedido();

    itemPedido.setProduto(produto);
    itemPedido.setQuantidade(request.getQuantidade());
    itens.add(itemPedido);

    pedido.setItensPedido(itens);

    return pedidoRepository.save(pedido);
}

}”’

CriarPedidoMapper:

”’
@Component
public class CriarPedidoMapper {

@Autowired
private UsuarioRepository usuarioRepository;

@Autowired
private EnderecoRepository enderecoRepository;

@Autowired
private EstabelecimentoRepository estabelecimentoRepository;

@Autowired
private EntregadorRepository entregadorRepository;

@Autowired
private ProdutoRepository produtoRepository;

@Autowired
private ItemPedidoRepository itemPedidoRepository;


public Pedido mapear(CriarPedidoRequest request) {

    Usuario usuario = usuarioRepository
            .findById(request.getIdUsuarioSolicitante()).get();

    Endereco enderecoEntrega = enderecoRepository
            .findById(request.getIdEnderecoEntrega()).get();

    Estabelecimento estabelecimento = estabelecimentoRepository
            .findById(request.getIdEstabelecimento()).get();

    Entregador entregador = entregadorRepository
            .findById(request.getIdEntregador()).get();

    Produto produto = produtoRepository
            .findById(request.getIdProduto()).get();

    BigDecimal valor = produto.getValor();
    Integer quantidade = request.getQuantidade();
    BigDecimal valorTotal = BigDecimal.valueOf(quantidade).multiply(valor);



    return new Pedido(request.getIdPedido(), usuario, enderecoEntrega, estabelecimento, request.getItens(),
            request.getFormaPagamento(), request.getStatus(), request.getHorarioSolicitacao(),
            request.getHorarioSaiuParaEntrega(), request.getHorarioEntrega(),
            request.getHorarioCancelamento(), valorTotal, entregador);
}

}
”’

Json:

”’
{
“idEstabelecimento”: 1,
“idUsuarioSolicitante”: 1,
“idEnderecoEntrega”: 1,
“formaPagamento”: “PIX”,
“itens”: (
{
“idProduto”: 1,
“quantidade”: 1
},
{
“idProduto”: 2,
“quantidade”: 2
}
)
}
”’

java – URLify a given String – replace spaces with %20

Your code does what you describe, but the code does not what it is really supposed to do.

You are not the first person ever who needs to convert an arbitrary string into a form that can be embedded in a URL. Several people before you have already solved this problem. The crucial point is to know how these people named the method or function or class or module where they implemented this function.

In Java, most network-related things are in the package java.net, and since URLs and URIs are network-related, they are there as well. Directly next to the classes URL and URI you will find the class URLEncoder that does all the work for you, including several edge cases you probably never heard of. Using this heavily tested and well-known piece of code is much better than rolling your own.

Hmmm, a pretty heavy down-side of Java’s URLEncoder is that it is old and dusty and probably will not be updated anymore. It does not even encode spaces as %20, but as +, and the + is something that only works in the query string part of a URL.

This Stack Overflow answer describes the bad API that standard Java is providing for this use case. The encoding part of this answer to that question is good, the general Java approach is bad, as I wrote in the comment below that answer. So be careful and don’t copy that code blindly.

compilers – Why does the Java grammar have a StatementExpression that resolves to just Expression? Why have this and other redundant rules in the grammar?

I’m looking at the following grammar rules for the Java language described on the Oracle docs:

Statement:
    ...
    if ParExpression Statement (else Statement)
    StatementExpression ;
    ...

StatementExpression:
    Expression

ParExpression:
    ( Expression )

I don’t understand why the StatementExpression rule is present at all. I also don’t understand why ParExpression had to be written as a separate rule.

Why couldn’t the grammar just look like the following?

Statement:
    ...
    if ( Expression ) Statement (else Statement)
    Expression ;
    ...

java – org.springframework.validation.BindException – Stack Overflow

org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object ‘query’ on field ‘imgURL’: rejected value `

   public String ask_query(Model model,Principal principal) {
       model.addAttribute("title", "Ask-Query");
       model.addAttribute("query", new Query());
       
       return "normal/ask_query";

   }`

@ModelAttribute
   public void addCommonData(Model model,Principal principal){
       String userName = principal.getName();
   
       User user = userRespostory.getUserFromUserEmail(userName);
       model.addAttribute("user", user);

   } ```


(org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile@9387b66); codes (typeMismatch.query.imgURL,typeMismatch.imgURL,typeMismatch.java.lang.String,typeMismatch); arguments (org.springframework.context.support.DefaultMessageSourceResolvable: codes (query.imgURL,imgURL); arguments (); default message (imgURL)); default message (Failed to convert property value of type 'org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile' to required type 'java.lang.String' for property 'imgURL'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile' to required type 'java.lang.String' for property 'imgURL': no matching editors or conversion strategy found)
   at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.resolveArgument(ModelAttributeMethodProcessor.java:170)
   at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:121)
   at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:170)