La Web del Programador: Comunidad de Programadores
 
    Pregunta:  66116 - AYUDA SOBRE EL JOPTIONPANE.SHOWMESSAGEDIALOG JAVA NETBEANS
Autor:  Cristian Andres Sanchez Abaunza
Hola excelente comunidad de la web del programador, Tengo un problemita programando en java con netbeans, Veran, Debo hacer un programa que lea una informacion de un txt y la introdusca en netbeans, Mi programa capturara los nombres y las notas de una materia de un grupo universitario, De hecho yo ya hice todo el programa en netbeans y me quedo perfecto, Aqui esta todo el algoritmo para ello:

ClaseEstudiante:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package arreglo_s3at;

/**
*
* @author Estudiantes
*/
public class ClaseEstudiante {
private String nombre;
private double notadelaasistencia;
private double notadeltaller;
private double notadelparcial;

/**
* @return the nombre
*/
public String getNombre() {
return nombre;
}

/**
* @param nombre the nombre to set
*/
public void setNombre(String nombre) {
this.nombre = nombre;
}

/**
* @return the notadelaasistencia
*/
public double getNotadelaasistencia() {
return notadelaasistencia;
}

/**
* @param notadelaasistencia the notadelaasistencia to set
*/
public void setNotadelaasistencia(double notadelaasistencia) {
this.notadelaasistencia = notadelaasistencia;
}

/**
* @return the notadeltaller
*/
public double getNotadeltaller() {
return notadeltaller;
}

/**
* @param notadeltaller the notadeltaller to set
*/
public void setNotadeltaller(double notadeltaller) {
this.notadeltaller = notadeltaller;
}

/**
* @return the notadelparcial
*/
public double getNotadelparcial() {
return notadelparcial;
}

/**
* @param notadelparcial the notadelparcial to set
*/
public void setNotadelparcial(double notadelparcial) {
this.notadelparcial = notadelparcial;
}

public double getdefinitiva(){
double notafinaldeasistencia;
notafinaldeasistencia=(getNotadelaasistencia()*10)/100;
double notafinaldeltaller;
notafinaldeltaller=(getNotadeltaller()*30)/100;
double notafinaldelparcial;
notafinaldelparcial=(getNotadelparcial()*60)/100;
double notadefinita;
notadefinita=notafinaldeasistencia + notafinaldeltaller + notafinaldelparcial;
return notadefinita;
}
}

Clase Principal De Mi Programa:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package arreglo_s3at;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JOptionPane;

/**
*
* @author Estudiantes
*/
public class Arreglo_S3AT {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
ClaseEstudiante[] estudiantes;
estudiantes=new ClaseEstudiante[22];

String rutadelarchivo;
rutadelarchivo=JOptionPane.showInputDialog("Digite la ruta o ubicacion del archivo, Ejemplo(C:/Program Files/7-Zip/readme.txt):");

FileReader manejadorarchivo;

try{
manejadorarchivo=new FileReader(rutadelarchivo);
}catch(FileNotFoundException err){
JOptionPane.showMessageDialog(null, "No se encuentra el archivo
" + err.getMessage());
return;
}

BufferedReader buffertexto;
buffertexto=new BufferedReader(manejadorarchivo);

int casilla;
casilla=0;
while(casilla String lineatexto;
try{
lineatexto=buffertexto.readLine();
}catch(IOException err){
JOptionPane.showMessageDialog(null, err.getMessage());
return;
}
if(lineatexto ==null){
break;
}else{
String[] cadenas;
cadenas=lineatexto.split(";");

double notadeasistencia;
notadeasistencia=Double.parseDouble(cadenas[1]);
double notadeltaller;
notadeltaller=Double.parseDouble(cadenas[2]);
double notadelparcial;
notadelparcial=Double.parseDouble(cadenas[3]);

estudiantes[casilla]= new ClaseEstudiante();
estudiantes[casilla].setNombre(cadenas[0]);
estudiantes[casilla].setNotadelaasistencia(notadeasistencia);
estudiantes[casilla].setNotadeltaller(notadeltaller);
estudiantes[casilla].setNotadelparcial(notadelparcial);
}
casilla++;
}
double promediodetodoelsalon;
casilla=0;
promediodetodoelsalon=0;
while(casilla promediodetodoelsalon=promediodetodoelsalon + estudiantes[casilla].getdefinitiva()/22;
casilla++;
}
String mostrar;
mostrar="";
casilla=0;
while(casilla mostrar=mostrar + "Aqui se esta mostrando toda la informacion del siguiente estudiante:
" + "Su nombre completo es: " + estudiantes[casilla].getNombre() + "
" + "Su nota de asistencia es: " + estudiantes[casilla].getNotadelaasistencia() + "
" + "Su nota del taller es: " + estudiantes[casilla].getNotadeltaller() + "
" + "Su nota del parcial es: " + estudiantes[casilla].getNotadelparcial() + "
" + "y su definitiva es: " + estudiantes[casilla].getdefinitiva() + "

";
casilla++;
}
JOptionPane.showMessageDialog(null, mostrar + "El promedio de todo el salon es: " + promediodetodoelsalon);
}
}

El programa me funciona a las mil maravillas pero el problema es que el joptionpane.showmessagedialog ME SALE ENORME a lo vertical y solo puedo ver toda la informacion de 3 estudiantes, Yo necesito que el joptionpane se expanda a lo horizontal y me muestre en la esquina superior izquierda toda la informacion de un estudiante, Luego en la mitad la informacion de otro y luego en la esquina superior derecha la informacion de otro y luego baje dos espacios y repita el mismo procedimiento, Yo se que esto se puede hacer pero no tengo la mas minima idea de como debo hacerlo, Me podrian ayudar por favor? Gracias, Se los agradesco mucho

  Respuesta:  nelson E.R.
saludos, buen dia, ummh la unica forma de personalizar lo q deseas hacer es q hagas una clases q herede de loption.showmesages y a ella le modidiques el bounds, de esa forma podras hacerlo.
public class joptionpane extends JOptionPane{


public joptionpane() {
super();
int x=200,y=200,ancho=500,alto=200;
super.setBounds(x, y, ancho, alto);
this.show();
}
@Override
public void paintComponent(Graphics g){
repaint();
}

}

pero de hecho debes buscar como sobreesscribir bien el paintcomponent para q no tengas problemas con este objeto.

suerte.