¿Porqué no me muestra nada el output? ¿Qué hago mal?

hice este sencillo app y la verdad que no encuentro la razón de porque no veo nada en el output. Simplemente no lo veo.

La app consiste de 3 clases, Productos, Carrito y Main. La idea es agregar productos a un carrito y luego comparar los precios de ellos, listar los productos que están en carrito y ademas mostrar cual es el producto más caro y cual el más barato usando un compareTo. Puede que existan otros métodos pero lo necesitaba hacer usando la interface Comparable. ¿Cuál es mi error?

MAIN:

package comparaprecios2;

public class Main {

public static void main(String[] args) {     // char indica tipo de producto, B-bebible, H-higiene, C-comestible     Productos producto1 = new Productos("Agua S/Gas", 1.5, 30, 'B');      Productos producto2 = new Productos("Agua C/Gas", 1.5, 40, 'B');     Productos producto3 = new Productos("Shampoo", 500, 16, 'H');     Productos producto4 = new Productos("Bananas", 64, 'C');      Carrito carrito = new Carrito();      carrito.setProducto(producto1);     carrito.setProducto(producto2);     carrito.setProducto(producto3);     carrito.setProducto(producto4);      carrito.toString(); }  } 

PRODUCTOS:

package comparaprecios2;

public class Productos implements Comparable {

private double precio; private double tamanio; private char tipo; private String nombre;  public Productos(String nombre, double tamanio, double precio, char tipo) {     this.nombre = nombre;     this.tamanio = tamanio;     this.precio = precio;     this.tipo = tipo; }  public Productos(String nombre, double precio, char tipo) {     this.nombre = nombre;     this.precio = precio;     this.tipo = tipo; }  @Override public int compareTo(Object obj) {     Productos prodTemp = (Productos) obj;      if(prodTemp.precio < this.precio)     {         return -1;     }      if(prodTemp.precio > this.precio)     {         return 1;     }      return 0; }  public String dameNombre() {     return this.nombre; }  @Override public String toString(){      switch(tipo){         default:             return "Nombre: " + nombre + " /// " + "Precio: $  " + precio;         case 'C':             return "Nombre: " + nombre + " /// " + "Precio: $  " + precio +                     " /// " + "Unidad de venta: kilo";         case 'B':             return "Nombre: " + nombre + " /// " + "Litros: " + tamanio +                     "L /// " + "Precio: $  " + precio;         case 'H':             return "Nombre: " + nombre + " /// " + "Contenido: " + tamanio +                     "ml /// " + "Precio: $  " + precio;     } } 

}

CARRITO:

package comparaprecios2;

import java.util.ArrayList; import java.util.Collections; import java.util.List;

public class Carrito {

private static List<Productos> listaDeProductos;   public Carrito(){      listaDeProductos = new ArrayList();  }  public void setProducto(Productos x){      listaDeProductos.add(x);  }  @Override public String toString(){      for (int i = 0; i < listaDeProductos.size(); i++)     {         listaDeProductos.get(i).toString();     }      Collections.sort(listaDeProductos);     return "=============================" + "\nProducto más caro: "             + listaDeProductos.get(listaDeProductos.size()-1).dameNombre()             + "\nProducto más barato: " + listaDeProductos.get(0).dameNombre();  }  } 

Gracias.

¿Por qué si integré una libreria (JAI) no me reconoce las clases de la misma?

Tengo la siguiente porción de código java de prueba:

RenderedImage src = (RenderedImage) JAI.create("fileload", fileName); 

Pero no encuentra la clase JAI que debería estar en la librería que integré a través de Netbeans dándole en la carpeta de librerías:

Add Library > Java Advanced Imaging

Ya había gestionado la librería at través de:

Tools > Libraries > Add JAR/Folder… > jai-imageio-core-1.4.0.jar

Esa librería es un pack con las dependencias necesarias incluidas.

¿Me falta hacer algo para que lea las clases de la librería?

Una imagen

¿Por qué si estoy usando mediaqueries Google dice que mi web no está optimizada?

He diseñado mi sitio web con mediaqueries. Ya hice las pruebas y se ve perfecto en moviles de 320 de ancho, 370, 480, y en tablets y demas aparatos. Cuando subi mi pagina la registre en google search console y ayer me llego el informe de rastreo de mi web donde me indican que tiene dos errores: 1. El contenido es mas ancho que la pantalla. 2. La ventana grafica no se ha definido. Y cuando veo mi pagina en el buscador abajo dice “tu web no esta optimizada para moviles”…cosa que es falso. Pero no entiendo por que me dicen eso.

Les pongo informacion mas detallada de lo que me dice google, para ver si me pueden ayudar:

GOOGLE:

“”El contenido es más ancho que la pantalla En este informe aparecen las páginas en las que es necesario el desplazamiento horizontal para ver las palabras y las imágenes que contienen. Esto sucede cuando las páginas utilizan valores absolutos en las declaraciones CSS o utilizan imágenes diseñadas para que se vean mejor con un ancho de navegador concreto (como 980 píxeles). Para solucionar este error, asegúrate de que las páginas utilicen valores de posición y ancho relativos para los elementos CSS y comprueba que las imágenes también puedan escalarse. Consulta más información al respecto en el apartado Ajusta el contenido a la ventana de visualización.“” “”No se ha definido ningún viewport En tu página no se define una propiedad viewport que indique a los navegadores cómo se ajusta el tamaño y la escala de la página para adaptarla al dispositivo. Dado que los visitantes de tu sitio web utilizan diferentes dispositivos con pantallas de diversos tamaños (desde grandes pantallas de ordenador hasta tablets y smartphones pequeños), tus páginas deberían definir un viewport mediante la etiqueta meta viewport. Consulta más información en el artículo Aspectos básicos del diseño web adaptable.“”

Ahora les voy a mostrar una parte de mi codigo para que vean que si tengo definido el viewoport:

HTML HEAD:

//AQUI VA EL GOOGLE ANALITYCS <meta charset="utf-8" /> <title>MI PAGINA WEB</title> <meta name="description" content="MI PAGINA WEB" /> <meta name="keywords" content="MI, PAGINA, WEB" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <!--[if lte IE 8]> <link rel="stylesheet" href="ie.css" /> <![endif]--> <link href="https://fonts.googleapis.com/css?family=Montserrat" rel="stylesheet" /> <link rel="stylesheet" href="style.css" /> <script src="jquery-3.3.1.min.js"> </script> <script src="jquery-color-animate.min.js"> </script> <script src="jq.js"> </script> 

CSS

@media ( max-width : 900px ) {  } @media ( max-width : 480px ) {  } 

¿Por qué no sale reportviewer cuando estoy enviando parametros correctamente?

Buenas tengo éste código que lo que hace es mandar a llamar un tableadapter, mandar su parametro para llenar el datatable en el dataset, cuando envio los parametros todo carga bien pero cuando empieza a cargar el reportviewer sale éste mensaje. (En el reporte tengo un tablix que se llena con los campos de “CamposConsolidado” y su origen de datos es el dataset.) introducir la descripción de la imagen aquí

Aquí está el codigo que utilizo para enviar el parametro al TableAdapter. introducir la descripción de la imagen aquí Muchas gracias. Posdata: Ignoren el if(true) haha, estaba haciendo más pruebas.

split(” “) na String ” Java Essencial ” gera 3 tokens. Por quê?

A idéia era separar as palavras dos espaços em branco. Segue o seguinte código.

String s = " Java Essencial ";   String[] ss = s.split(" ");  for (int i = 0; i < ss.length; i++) {     System.out.println("[" + i + "] " + ss[i]); } 

Como se vê no resultado, temos três tokens. O correto não seria ter 2 tokens?

¿Por qué se me pone el titulo del android:label como titulo de todos mis toolbar?

En el manifest tengo como android:label el nombre de mi aplicacion. Este nombre se me pone en todos mis toolbar creados. En el tema quite el actionBar por defecto que te crea. El codigo es el siguiente:

public class EdicionModulo extends AppCompatActivity {

private Toolbar tbEdicionModulo; private TextView tvTitleToolbar;  @Override protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_edicion_modulo);      tvTitleToolbar = (TextView) findViewById(R.id.tvTitleToolbar);     tbEdicionModulo = (Toolbar) findViewById(R.id.tbEdicionModulo);     setSupportActionBar(tbEdicionModulo);      Intent intent = getIntent();     String nModulo = intent.getStringExtra("nombreModulo");     String estado = intent.getStringExtra("estadoModulo");      tvTitleToolbar.setText(nModulo);    } 

}

En el toolbar me aparece el Texto del android:label del manifest seguido del texto que le pongo a este toolbar. Si le pongo un setTitle(nModulo) me coge solo el texto ahora si del “nModulo” pero el estilo del texto es un poco cutre por lo que quiero hacerlo con un textView para darle la apariencia que le he puesto.