Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - Sergio Perez

Páginas: [1]
1
Hola a todos, tengo un problema con lo siguiente:

Esta es mi clase Main:
Código: [Seleccionar]
import java.util.Scanner;

import javax.swing.JOptionPane;

public class Main {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Cola cola = new Cola();
int op,n=0,i=0;

String cad=null;
do {
op=Integer.parseInt(JOptionPane.showInputDialog("MENU\n1.Insertar en la posicioni-esima\n2.Insertar antes de cierta cadena\n3.Insertar despues de cierta cadena\n4.Eliminar cadena\n5.Eliminar cadena de la posicion i-esima\n6.Mostrar lista ligada\n7.Salir"));

switch(op) {
case 1:
n=Integer.parseInt(JOptionPane.showInputDialog("¿Cuantos datos vas a dar de alta"));
for(i=1;i<=n;i++) {
cad=JOptionPane.showInputDialog("Digite el nombre");
cola.push(cad);
}
break;
case 2:
break;
case 3:
break;
case 4:
cola.pop();
break;
case 5:
cola.pop2();
break;
case 6:
cola.Mostrar();
break;
case 7:
break;
}
}while(op!=7);
}

}

la clase Cola.java
Código: [Seleccionar]
public class Cola {
Nodo inicio;
Nodo fin;

public Cola() {
inicio =null;
fin=null;


}

public boolean IsEmpty() {
if(inicio == fin && fin== null){
return true;

}else {
return false;

}

}

public void Mostrar() {
int i=0;
if(IsEmpty()) {
System.out.println("La cola esta vacia");

}else {
Nodo aux = inicio;
while(aux!=fin) {

System.out.println("\n[ ]"+i+" "+aux.cad);
i++;
aux = aux.siguiente;

}

System.out.println("\n[ ]"+i+" "+fin.cad);
}

}

public void push(String cad){  //Encola n-esimo elemento en la cola
Nodo aux = new Nodo();
aux.cad=cad;
if(IsEmpty()) {
inicio=aux;
fin=aux;
}else {
fin.siguiente= aux;
fin = aux;

}
}

public void push2(String cad){  //Encola n-esimo elemento en la cola
Nodo aux = new Nodo();
aux.cad=cad;
if(IsEmpty()) {
inicio=aux;
fin=aux;
}else {
fin.siguiente= aux;
aux.siguiente=inicio;
fin = aux;
}

}
public String pop(){
int i=0;
String elemento= null;
if(!IsEmpty()) {
if(inicio == fin) {
elemento=inicio.cad;
inicio=null;
fin= null;

}
else {
elemento = inicio.cad;
inicio = inicio.siguiente;

}

}
return elemento;

}

public String pop2(){//Elimina n-esimo elemento de la cola
int i=0;
String elemento= null;
if(!IsEmpty()) {
if(inicio == fin) {
elemento=inicio.cad;
inicio=null;
fin= null;

}
else {
elemento = inicio.cad;
fin.siguiente = inicio.siguiente;
inicio = inicio.siguiente;

}

}
return elemento;
}

}

Y la clase Nodo:
Código: [Seleccionar]
public class Nodo {
String cad;
Nodo siguiente;

}

Digamos que en la ejecución me arroja:
Citar
[ ]0 Pedro
[ ]1 Luis
[ ]2 Juan

Pero quiero saber como puedo aplicar las opciónes de
Citar
2.Insertar antes de cierta cadena y 3.Insertar después de cierta cadena

Osea preguntarle al usuario por ejemplo en que posicion quiere insertar en cada caso, y respete los demás valores sin sacarlo
Por ejemplo que
[ ]0 Pedro //modifique esta con la opc 2
[ ]1 Luis //respete esta posición
[ ]2 Juan //o modifique esta con la opc 3

Ya por último y esperando no abusar como manejar todo esto para que las cadenas tengan a lo más una longitud de 10 caracteres y el arreglo tener a lo más 50 localidades???  ;D

2
Hola buena tarde a todos, espero me puedan orientar o ayudar con lo siguiente:

Me gustaría saber como puedo implementar el siguiente fragmento de código:
Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

main()
{
setlocale(LC_ALL, "spanish");

char cadena[50];

        printf("Escriba una cadena: ");
        scanf(cadena); /* Las cadenas NO llevan & */
       
        gets(cadena);
       
printf("\nLa cadena leída era: \n");
       
        puts(cadena);
       
}

para que trabaje con la estructura de Pila y pueda con ello también hacer lo siguiente:

Citar
Si el carácter es ‘@’, eliminar la última palabra. Por ejemplo, si se tiene la cadena “cadena de caracteres yu378”, la última palabra es “yu378”.
Si el carácter es ‘,’, se elimina el último carácter.
Si el carácter es ‘!’ se eliminan todos los caracteres que se hayan introducido.
Si el carácter es ‘.’ se termina el programa.
Por cada operación realizada se deben mostrar los caracteres que queden.

Espero por favor me puedan ayudar  :(

3
Hola buenas tardes de momento tengo este código:

Código: [Seleccionar]
package clases;

import ventanas.Inventario;

public class main {

   
    public static void main(String[] args) {
       
        Inventario e = new Inventario();
        e.setVisible(true);
       
    }
}
Código: [Seleccionar]
package clases;

public class Preguntas {
   
    String[] preguntas = {
        "1. Torpe o entumecido", "2. Acalorado", "3. Con temblor en las piernas",
        "4. Incapaz de relajarse", "5. Con temor a que ocurra lo peor","6. Mareado, o que se le va la cabeza",
        "7. Con latidos del corazón fuertes y acelerados","8. Inestable","9. Atemorizado o asustado",
        "10. Nervioso","11. Con sensación de bloqueo","12. Con temblores en las manos",
        "13. Inquieto, inseguro","14. Con miedo a perder el control","15. Con sensación de ahogo",
        "16. Con temor a morir","17. Con miedo","18. Con problemas digestivos",
        "19. Con desvanecimientos","20. Con rubor facial","21. Con sudores, frios o calientes"
    };
   
   public String getPregunta(int posicion){
        return preguntas[posicion];
    }
   
}
Código: [Seleccionar]
package clases;

import java.util.StringTokenizer;

public class Respuestas {

    String[] respuestas =  {
      "[0]En Absoluto","[1]Levemente","[2]Moderadamente","[3]Severamente"
    };
   
    public String getRespuesta(int posicion){
        return respuestas[posicion];
    }
   
    public String[] separar(String cadena, String separador){
        StringTokenizer token = new StringTokenizer(cadena,separador);
       
        String[] a = new String[21];
        int i = 0;
       
        while(token.hasMoreTokens()){
            a[i] = token.nextToken(); // obtenido el token
            i++;
        }
       
        return a;
    }
   
    public String[] setRespuestas(int posicion){
        String s1 = respuestas[posicion];
        String[] s2 = separar(s1,",");
        return s2;
    }
   
}

Y lo quería usar en un Frame como este:


Solo quiero saber como puedo aplicarle la clase Stack, ya que en respuesta no necesito ya el
Citar
[0]En Absoluto,[1]Levemente,[2]Moderadamente,[3]Severamente
por que los puedo poner con un Label, si no que sea String repuestas[21] y lea numeros enteros en el TextField desde teclado para que al terminar el Test me de un promedio.
Y de ser posible que el botón "Avanzar" y "Regresar" funcionen con "push" y "pop" del stack  :-[

4
Buen día a todos

Quisera saber si puedo invocar un panel desde otro panel con un boton, en una extension JFrame?????

En el caso digamos que mi panel principal es el de PanelBiblioteca.java y con el botón que tiene incluido de Siguiente hacer que aparezca el segundo panel PanelUsuario.java, y con el de anterior lo contrario, que desaparezca y viceversa

Mis códigos son:

PanelBiblioteca.java
Código: [Seleccionar]
package biblioteca;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public final class PanelBiblioteca extends JFrame implements ActionListener {

    JComboBox Año,Dia,Mes;
JLabel etiqNombre, etiqDireccion, etiqTelefono, etiqFNacim, etiqFInsc, etiqFVigen, etiqCodLib, etiqTitLib, etiqAutores, etiqISB, etiqEditorial, etiqAñoImpr, etiqNumCopias;
JTextField txtNombre, txtDireccion, txtTelefono, txtFNacim, txtFInsc, txtFVigen, txtCodLib, txtTitLib, txtAutores, txtISB, txtEditorial, txtAñoImpr, txtNumCopias, txtBuscar;
JButton BtnGuardar, BtnNuevo, BtnEliminar, BtnSalir, BtnBuscar,BtnSiguiente,BtnAnterior;;
JPanel panel;
    private String [] dias={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"};
private Libro resultado;
private Persona usuario;
private PanelUsuario Us;
private String [] mes = {"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"};
private String[] año = {"2021","2022","2023","2024","2025","2026","2027","2028","2029","2030"};
PanelBiblioteca(){

resultado = new Libro();
usuario = new Persona();
Us = new PanelUsuario();
//Listas despegables
Mes= new JComboBox(mes);
Mes.setBounds(870, 52, 70, 20);
Dia= new JComboBox(dias);
Dia.setBounds(830, 52, 40, 20);
Año= new JComboBox(año);
Año.setBounds(940, 52, 70, 20);
//Etiquetas
etiqNombre = new JLabel("Nombre");
etiqNombre.setBounds(130, 30, 50, 20);
etiqDireccion = new JLabel("Direccion");
etiqDireccion.setBounds(245, 30, 70, 20);
etiqAutores = new JLabel("Autor(es)");
etiqAutores.setBounds(305, 100, 120, 20);
etiqTelefono = new JLabel("Teléfono");
etiqTelefono.setBounds(370, 30, 70, 20);

etiqFNacim = new JLabel("Fecha de Nacimiento");
etiqFNacim.setBounds(450, 30, 120, 20);
txtFNacim = new JTextField();
txtFNacim.setBounds(460, 55, 100, 20);
etiqFInsc = new JLabel("Fecha de Inscripción");
etiqFInsc.setBounds(650, 30, 120, 20);
etiqFVigen = new JLabel("Fecha de Vigencia");
etiqFVigen.setBounds(850, 30, 120, 20);
etiqCodLib = new JLabel("Código de Libro");
etiqCodLib.setBounds(45, 100, 120, 20);
etiqTitLib = new JLabel("Titulo");
etiqTitLib.setBounds(193, 100, 120, 20);
etiqISB = new JLabel("ISB");
etiqISB.setBounds(443, 100, 120, 20);
etiqEditorial = new JLabel("Editorial");
etiqEditorial.setBounds(550, 100, 120, 20);
etiqAñoImpr = new JLabel("Año de Impresión");
etiqAñoImpr.setBounds(640, 100, 120, 20);
etiqNumCopias = new JLabel("Número de Copias");
etiqNumCopias.setBounds(758, 100, 120, 20);


//Campos de texto
txtTelefono = new JTextField();
txtTelefono.setBounds(340, 55, 100, 20);
txtDireccion = new JTextField();
txtDireccion.setBounds(220, 55, 100, 20);
txtNombre = new JTextField();
txtNombre.setBounds(100, 55, 100, 20);
txtCodLib = new JTextField();
txtCodLib.setBounds(40, 125, 100, 20);
txtTitLib = new JTextField();
txtTitLib.setBounds(160, 125, 100, 20);
txtAutores = new JTextField();
txtAutores.setBounds(280, 125, 100, 20);
txtISB = new JTextField();
txtISB.setBounds(400, 125, 100, 20);
txtEditorial = new JTextField();
txtEditorial.setBounds(520, 125, 100, 20);
txtAñoImpr = new JTextField();
txtAñoImpr.setBounds(640, 125, 100, 20);
txtBuscar = new JTextField();
txtBuscar.setBounds(400, 270, 100, 20);
txtNumCopias = new JTextField();
txtNumCopias.setBounds(760, 125, 100, 20);
        //Botones
BtnGuardar = new JButton("Guardar");
BtnGuardar.setBounds(230, 200, 80, 20);
BtnGuardar.addActionListener(this);
BtnNuevo = new JButton("Nuevo");
BtnNuevo.setBounds(350, 200, 80, 20);
BtnNuevo.addActionListener(this);
BtnEliminar = new JButton("Eliminar");
BtnEliminar.setBounds(470, 200, 80, 20);
BtnSalir = new JButton("Salir");
BtnSalir.setBounds(590, 200, 80, 20);
BtnSalir.addActionListener(this);
BtnBuscar = new JButton("Buscar");
BtnBuscar.setBounds(410, 300, 80, 20);
BtnBuscar.addActionListener(this);
BtnSiguiente = new JButton("Siguiente");
BtnSiguiente.setBounds(430, 330, 80, 20);
BtnSiguiente.addActionListener(this);
BtnAnterior = new JButton("Anterior");
BtnAnterior.setBounds(240, 330, 80, 20);
BtnAnterior.addActionListener(this);


//Ventanas
panel = new JPanel();
panel.setLayout(null);

//Panel1
//Etiquetas añadidas al panel
panel.add(etiqNombre);
panel.add(etiqDireccion);
panel.add(etiqTelefono);
panel.add(etiqFNacim);
panel.add(etiqFInsc);
panel.add(etiqFVigen);
panel.add(etiqCodLib);
panel.add(etiqTitLib);
panel.add(etiqAutores);
panel.add(etiqISB);
panel.add(etiqEditorial);
panel.add(etiqAñoImpr);
panel.add(etiqNumCopias);
//Campos de texto añadidos al panel
panel.add(txtNombre);
panel.add(txtDireccion);
panel.add(txtTelefono);
panel.add(txtFNacim);
panel.add(txtCodLib);
panel.add(txtTitLib);
panel.add(txtAutores);
panel.add(txtISB);
panel.add(txtEditorial);
panel.add(txtAñoImpr);
panel.add(txtNumCopias);
panel.add(txtBuscar);
//Botones añadidos al panel
panel.add(BtnGuardar);
panel.add(BtnNuevo);
panel.add(BtnEliminar);
panel.add(BtnSalir);
panel.add(BtnBuscar);
panel.add(BtnSiguiente);
panel.add(BtnAnterior);
//Listas desplegables añadidas al panel
panel.add(Mes);
panel.add(Dia);
panel.add(Año);
panel.add(Us.panel2);
setTitle("                                                                                                  BIBLIOTECA CENTRAL");
add(panel);
setSize(1100, 400);
setVisible(true);






}

public static void main(String[] args) {
new PanelBiblioteca();
}//cerrar main


public void actionPerformed(ActionEvent e) {
String  c,t,a,ed,I,an,cop;
t=txtTitLib.getText();
c=txtCodLib.getText();
a=txtAutores.getText();
ed=txtEditorial.getText();
I=txtISB.getText();
an=txtAñoImpr.getText();
cop=txtNumCopias.getText();
Mes.getAction();
Dia.getAction();


if(e.getSource()==BtnGuardar) {



}if(e.getSource()==BtnBuscar) {

}

}if(e.getSource()==BtnNuevo) {

txtCodLib.setText("");
txtNombre.setText("");
txtAutores.setText("");
txtTitLib.setText("");
txtEditorial.setText("");
                txtISB.setText("");
txtNumCopias.setText("");
txtAñoImpr.setText("");
Mes.setAction(null);
Dia.setAction(null);
}if(e.getSource()==BtnSalir) {
System.exit(0);
if(e.getSource()==BtnSiguiente) {
panel.setVisible(false);
Us.panel2.setVisible(true);

}


}
}
}

PanelUsuario.java

Código: [Seleccionar]
package biblioteca;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class PanelUsuario extends JFrame implements ActionListener {

JComboBox Año2,Dia2,Mes2;
JLabel etiqNombre, etiqDireccion, etiqTelefono, etiqFNacim, etiqFInsc, etiqFVigen;
JTextField txtNombre, txtDireccion, txtTelefono, txtFNacim, txtFInsc, txtFVigen,txtBuscar;
JButton BtnGuardar, BtnNuevo, BtnEliminar,BtnBuscar,BtnSiguiente,BtnAnterior;
JPanel panel2;

private String [] dias={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"};
private Libro resultado;
private Persona usuario;
private PanelBiblioteca library;
private String [] mes = {"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"};
private String[] año = {"2021","2022","2023","2024","2025","2026","2027","2028","2029","2030"};
PanelUsuario(){
resultado = new Libro();
usuario = new Persona();
//Listas despegables
Mes2= new JComboBox(mes);
Mes2.setBounds(870, 52, 70, 20);
Dia2= new JComboBox(dias);
Dia2.setBounds(830, 52, 40, 20);
Año2= new JComboBox(año);
Año2.setBounds(940, 52, 70, 20);
//Etiquetas
etiqNombre = new JLabel("Nombre");
etiqNombre.setBounds(130, 30, 50, 20);
etiqDireccion = new JLabel("Direccion");
etiqDireccion.setBounds(245, 30, 70, 20);
etiqTelefono = new JLabel("Teléfono");
etiqTelefono.setBounds(370, 30, 70, 20);
txtTelefono = new JTextField();
txtTelefono.setBounds(340, 55, 100, 20);
etiqFNacim = new JLabel("Fecha de Nacimiento");
etiqFNacim.setBounds(450, 30, 120, 20);
txtFNacim = new JTextField();
txtFNacim.setBounds(460, 55, 100, 20);
etiqFInsc = new JLabel("Fecha de Inscripción");
etiqFInsc.setBounds(650, 30, 120, 20);
etiqFVigen = new JLabel("Fecha de Vigencia");
etiqFVigen.setBounds(850, 30, 120, 20);
//Campos de texto
txtTelefono = new JTextField();
txtTelefono.setBounds(340, 55, 100, 20);
txtDireccion = new JTextField();
txtDireccion.setBounds(220, 55, 100, 20);
txtNombre = new JTextField();
txtNombre.setBounds(100, 55, 100, 20);
txtBuscar = new JTextField();
txtBuscar.setBounds(400, 270, 100, 20);
//Botones
BtnGuardar = new JButton("Guardar");
BtnGuardar.setBounds(230, 200, 80, 20);
BtnGuardar.addActionListener(this);
BtnNuevo = new JButton("Nuevo");
BtnNuevo.setBounds(350, 200, 80, 20);
BtnNuevo.addActionListener(this);
BtnEliminar = new JButton("Eliminar");
BtnEliminar.setBounds(470, 200, 80, 20);
BtnBuscar = new JButton("Buscar");
BtnBuscar.setBounds(410, 300, 80, 20);
BtnBuscar.addActionListener(this);
BtnSiguiente = new JButton("Siguiente");
BtnSiguiente.setBounds(430, 330, 80, 20);
BtnSiguiente.addActionListener(this);
BtnAnterior = new JButton("Anterior");
BtnAnterior.setBounds(240, 330, 80, 20);
BtnAnterior.addActionListener(this);

panel2= new JPanel();
panel2.setLayout(null);


//Etiquetas añadidas al panel
panel2.add(etiqNombre);
panel2.add(etiqDireccion);
panel2.add(etiqTelefono);
panel2.add(etiqFNacim);
panel2.add(etiqFInsc);
panel2.add(etiqFVigen);
//Campos de texto añadidos al panel
panel2.add(txtNombre);
panel2.add(txtDireccion);
panel2.add(txtTelefono);
panel2.add(txtBuscar);
//Botones añadidos al panel
panel2.add(BtnGuardar);
panel2.add(BtnNuevo);
panel2.add(BtnEliminar);
panel2.add(BtnBuscar);
panel2.add(BtnSiguiente);
panel2.add(BtnAnterior);
//Listas desplegables añadidas al panel
panel2.add(Mes2);
panel2.add(Dia2);
panel2.add(Año2);
panel2.add(Mes2);
panel2.add(Dia2);
panel2.add(Año2);

setTitle("                                                                                              Usuarios");
add(panel2);
setSize(1000, 400);
setVisible(false);
}





public void actionPerformed(ActionEvent e) {
if(e.getSource()==BtnAnterior) {

library.panel.setVisible(false);
panel2.setVisible(true);
library.add(panel2);
library.validate();
}


}

}

5
Que tal esto es una de rutina y consiste en lo siguiente, tengo las clases:

Código: [Seleccionar]
public class ClsFraccion
{
//Atributos
private int numerador;
private int denominador;
private String resultado;
;
//Constructores
public ClsFraccion() {
numerador=0;
denominador=0;
}

public ClsFraccion(int n, int d) {
numerador=n;
denominador=d;
}



public ClsFraccion(ClsFraccion q) {
this.numerador=q.numerador;
this.denominador=q.denominador;
}

//getters y setters
public String getResultado() {
return resultado;
}

public void setResultado(String resultado) {
this.resultado = resultado;
}
public int getNumerador() {
return numerador;
}

public void setNumerador(int numerador) {
this.numerador = numerador;
}

public int getDenominador() {
return denominador;
}

public void setDenominador(int denominador) {
this.denominador = denominador;
}

//Metodos-Operaciones
    public static int mcdRecursivo(int numerador, int denominador){
        if(denominador == 0) {
            return numerador;
        }else {
            return mcdRecursivo(denominador, (numerador%denominador));
        }
    }
public ClsFraccion mul(ClsFraccion p, ClsFraccion q) { //mul en lugar de "por"

ClsFraccion r=new ClsFraccion();
r.denominador=(p.denominador*q.denominador);
r.numerador=(p.numerador*q.numerador);
return r;
}

public ClsFraccion suma(ClsFraccion p, ClsFraccion q) {

ClsFraccion r = new ClsFraccion();
r.setDenominador(p.denominador*q.denominador);
r.setNumerador((p.numerador*q.denominador)+(p.denominador*q.numerador));
return r;
}



public ClsFraccion resta(ClsFraccion p, ClsFraccion q) { 

ClsFraccion r = new ClsFraccion();
r.setDenominador(p.denominador*q.denominador);
r.setNumerador((p.numerador*q.denominador)-(p.denominador*q.numerador));
return r;
}

public ClsFraccion division(ClsFraccion p, ClsFraccion q) {

ClsFraccion r=new ClsFraccion();
r.setDenominador(p.denominador*q.numerador);
r.setNumerador(p.numerador*q.denominador);
return r;
}

public void Simplificar() {
int divisor=2;
while(numerador>=divisor && denominador>=divisor) {
while(numerador%divisor==0 && denominador%divisor==0) {
numerador/=divisor;
denominador/=divisor;
}
divisor+=1;
}
}
public String Imprimir() {
resultado=(numerador+"/"+denominador);
return resultado;
}

public String respuesta() {
String q="";

Simplificar();
if(numerador>denominador) {
q+=(numerador/denominador)+" ";
}
q+=(numerador%denominador)+"/"+denominador;

return q;
}

public double valor() {
return (double)numerador/denominador;
}

}

Código: [Seleccionar]
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public final class Calculadora extends JFrame implements ActionListener {

JLabel eti1, guion1, guion2, ig, guion3, txtresn, txtresd;
JTextField txtvalores, txtnum1, txtden1, txtnum2, txtden2;
JButton BtnSuma, BtnResta, BtnMulti, BtnDiv, BtnIgual, BtnNumerador, BtnDenominador, BtnDEL, BtnDecimal,BtnGuardar,BtnAbrir;
JPanel panel;
JFileChooser seleccionar= new JFileChooser();
File archivo;
FileInputStream entrada;
FileOutputStream Salida;
byte[] bytesImg;
Calculadora(){

eti1 = new JLabel("Calculadora de Fracciones");
eti1.setBounds(128, 35, 200, 10);

//txtvalores = new JTextField();
//txtvalores.setBounds(58, 70, 280, 20);

txtnum1 = new JTextField();
txtnum1.setBounds(130, 60, 20, 20);

guion1= new JLabel("_");
guion1.setBounds(130, 70, 30, 20);

txtden1= new JTextField();
txtden1.setBounds(130, 90, 20, 20);

txtnum2 = new JTextField();
txtnum2.setBounds(160, 60, 20, 20);

guion2= new JLabel("_");
guion2.setBounds(160, 70, 30, 20);

txtden2= new JTextField();
txtden2.setBounds(160, 90, 20, 20);

ig= new JLabel("=");
ig.setBounds(190, 76, 20, 20);

txtresn= new JLabel();
txtresn.setBounds(210, 70, 20, 20);

txtresd= new JLabel();
txtresd.setBounds(210, 90, 20, 20);

guion3= new JLabel("_");
guion3.setBounds(210, 70, 30, 20);

BtnNumerador = new JButton("Num");
BtnNumerador.setBounds(60, 110, 90, 20);

BtnDenominador = new JButton("Den");
BtnDenominador.setBounds(230, 110, 90, 20);

BtnSuma = new JButton("+");
BtnSuma.setBounds(100, 150, 60, 20);
BtnSuma.addActionListener(this);

BtnResta = new JButton("-");
BtnResta.setBounds(220, 150, 60, 20);
BtnResta.addActionListener(this);

BtnMulti = new JButton("x");
BtnMulti.setBounds(100, 200, 60, 20);
BtnMulti.addActionListener(this);

BtnDiv = new JButton("/");
BtnDiv.setBounds(220, 200, 60, 20);
BtnDiv.addActionListener(this);

BtnIgual = new JButton("=");
BtnIgual.setBounds(100, 250, 60, 20);

BtnDEL = new JButton("DEL");
BtnDEL.setBounds(220, 250, 60, 20);

BtnGuardar= new JButton("Guardar");
BtnGuardar.setBounds(140, 290, 100, 20);

BtnAbrir= new JButton("Abrir");
BtnAbrir.setBounds(180, 290, 100, 20);

panel = new JPanel();
panel.setLayout(null);

panel.add(eti1);
//panel.add(txtvalores);
panel.add(txtnum1);
panel.add(guion1);
panel.add(txtden1);
panel.add(txtnum2);
panel.add(guion2);
panel.add(txtden2);
panel.add(txtresn);
panel.add(txtresd);
panel.add(guion3);
panel.add(ig);
//panel.add(BtnNumerador);
//panel.add(BtnDenominador);
panel.add(BtnSuma);
panel.add(BtnResta);
panel.add(BtnMulti);
panel.add(BtnDiv);
//panel.add(BtnIgual);
//panel.add(BtnDEL);
panel.add(BtnGuardar);

add(panel);
setSize(400, 400);
setVisible(true);


}//cerrar calculadora


public static void main(String[] args) {
new Calculadora();
Calculadora c = new Calculadora();

}

public void actionPerformed(ActionEvent e) {
//System.out.println("A");
String sx1, sx2, sy1, sy2;
int mcd, aux;
sx1=txtnum1.getText();
sx2=txtnum2.getText();
sy1=txtden1.getText();
sy2=txtden2.getText();


ClsFraccion f1=new ClsFraccion(Integer.parseInt(sx1), Integer.parseInt(sy1));
ClsFraccion f2=new ClsFraccion(Integer.parseInt(sx2), Integer.parseInt(sy2));

ClsFraccion resultado=new ClsFraccion();
Archivo file = new Archivo();
BtnGuardar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent eventoAccion) {
GuardarArchivo(eventoAccion);
}
});
if(e.getSource()==BtnSuma) {
System.out.println("Suma");
resultado=resultado.suma(f1, f2);
mcd=resultado.mcdRecursivo(resultado.getNumerador(), resultado.getDenominador());
txtresn.setText(String.valueOf(resultado.getNumerador()/mcd));
txtresd.setText(String.valueOf(resultado.getDenominador()/mcd));
resultado.Imprimir();
}
if(e.getSource()==BtnResta) {
System.out.println("Resta");
resultado=resultado.resta(f1, f2);
mcd=resultado.mcdRecursivo(resultado.getNumerador(), resultado.getDenominador());

txtresn.setText(String.valueOf(resultado.getNumerador()/mcd));
txtresd.setText(String.valueOf(resultado.getDenominador()/mcd));

}
if(e.getSource()==BtnDiv) {
System.out.println("Division");
resultado=resultado.division(f1, f2);
mcd=resultado.mcdRecursivo(resultado.getNumerador(), resultado.getDenominador());
txtresn.setText(String.valueOf(resultado.getNumerador()/mcd));
txtresd.setText(String.valueOf(resultado.getDenominador()/mcd));
resultado.Imprimir();
}
if(e.getSource()==BtnMulti) {
System.out.println("Multiplicacion");
resultado=resultado.mul(f1, f2);
mcd=resultado.mcdRecursivo(resultado.getNumerador(), resultado.getDenominador());
txtresn.setText(String.valueOf(resultado.getNumerador()/mcd));
txtresd.setText(String.valueOf(resultado.getDenominador()/mcd));
resultado.Imprimir();

}}


private void GuardarArchivo(ActionEvent evt) {
ClsFraccion c = new ClsFraccion();
try {
FileWriter fw = new FileWriter("Calculadora.txt");
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter pw = new PrintWriter(bw);

pw.print(c.getResultado());
pw.close();
bw.close();

}catch(java.io.IOException ioex) {
JOptionPane.showMessageDialog(null, ioex.toString());
}


}


public void actionPerformed1(ActionEvent e) {
// TODO Auto-generated method stub

}
}

Y en especial es esta donde empiezo con el archivo:
Código: [Seleccionar]
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.PrintWriter;

import javax.swing.JOptionPane;

public class Archivo {
public void GuardarArchivo(ClsFraccion cls) {
try {
FileWriter fw = new FileWriter("Calculadora.txt");
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter pw = new PrintWriter(bw);

pw.print(""+cls.getResultado());
pw.close();
bw.close();

}catch(java.io.IOException ioex) {
JOptionPane.showMessageDialog(null, ioex.toString());
}


}
}

Ya que la Clase Calculadora ocupa método gráfico, pero lo que me importa es que el resultado lo imprima en el archivo y solo me esta creando un archivo txt con "null" de contenido  :(

Y tambien quisiera saber como puedo hacer para que lea la entrada desde otro archivo  :'(

6
Buen día a todos!!!
Espero me puedan orientar, tengo el siguiente código:

Código: [Seleccionar]
import javax.swing.JOptionPane; //Clase Decimal.java

public class Decimal
{
        public static void main(String[] args)
        {
        int numero = Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese el número en base 10: "));                                                                                     
       
        int base = Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese la base a transformar..."));
        Base bases = new Base(numero,base);
        bases.transformar();
        JOptionPane.showMessageDialog(null,"El número "+numero+" en base "+base+" es:\n"+bases.getResultado());               
       
        }
}

class Base //Clase Base.java
{
String equivalente; 
int posicion; 
int numero; 
int base; 
int[] digitos;
int[] auxiliar;
                 
        public Base(int n, int b)
        {
                posicion = 0;
                equivalente = "";
                base = b;
                numero = n;
                digitos = new int [1];
        }
                           
        public void transformar()
        {
                if(numero<base)
                {
                        digitos[posicion]=numero;
                        tamaño();
                }
                else
                {
                        digitos[posicion]=numero%base;
                        tamaño();
                        posicion++;
                        numero = numero/base;
                        transformar();
                 }
        }
                 
        public String getResultado()
        {
                for (int j = digitos.length-2; j >= 0; j--)
                {
                        equivalente+=Character.toUpperCase(Character.forDigit(digitos[j], 16));
                }
                return equivalente;
        }
                               
        private void tamaño()
        {
                 auxiliar = digitos;
                 digitos = new int [auxiliar.length+1];
                 System.arraycopy(auxiliar, 0, digitos, 0, auxiliar.length);
        }
}


El problema que tengo es si hay una manera de sustuir el "for" que tengo en la siguiente parte de clase "Base" :

Citar
public String getResultado()
        {
                for (int j = digitos.length-2; j >= 0; j--)
                {
                        equivalente+=Character.toUpperCase(Character.forDigit(digitos[j], 16));
                }
                return equivalente;

        }

por algún "if-else" ya que según tengo entendido no se puede utilizar "for o while" para la recursividad  :(

7
Buen día a todos estoaba trabajando con el siguiente código:

Código: [Seleccionar]
package ejemploseriefibonacci;

import java.util.Scanner;

public class EjemploSerieFibonacci {

public static void main(String[] args) {
// Leer teclado
Scanner teclado = new Scanner(System.in);
System.out.println("Ingresa el tamaño de la serie: ");
int numero = teclado.nextInt();

//muestra resultado o serie
for(int i = 0; i < numero; i++) {
System.out.print(Fibonacci(i)+" ");
}
System.out.println("");
}

//Metodo que calcula secuencia hasta llegar a n números
public static int Fibonacci(int n) {
if(n > 1) {
//funcion recursiva
return Fibonacci(n - 1) + Fibonacci(n - 2);
}else if(n==1){
//caso base
return 1;
}else if(n==0) {
//caso base
return 0;
}else {
//Error
System.out.println("Debes ingresar un tamaño de valor = ó > a 1");
return -1;
}

}

}


Alguna sugerencia de que le puedo quitar/agregar para que haga lo siguiente:

La suma de los primeros n números pares.
Por ejemplo: si n=5 obtener 2+4+6+8+10
La suma de los primero n números impares.
Por ejemplo: si n=5 obtener 1+3+5+7+9    :-\

8
Buen día a todos, se que este es un clásico que algunos ya han solicitado pero en mi caso estaba trabajando con el siguiente código:

Código: [Seleccionar]
package JavaArchivo;//esta es la clase principal

import java.io.File;
import java.util.LinkedList;

public class principal {

public static void main(String[] args) {
int lineas=0, palabras=0, caracteres=0;

LinkedList<File> listFicheros = new LinkedList<>();

for(int i = 1; i <= 5; i++) {
listFicheros.add(new File("C:\\Users\\user\\Desktop\\ArchivoJava.txt"));
}
for(int i = 0; i < listFicheros.size(); i++) {
Archivo archivo = new Archivo(listFicheros.get(i));
lineas += archivo.getLineas();
palabras += archivo.getPalabras();
caracteres += archivo.getCaracteres();
       
    }
System.out.println("Lineas: "+lineas+"\nPalabras: "+palabras+"\nCaracteres: "+caracteres);
    }

}

Y esta es la clase que definí como Archivo
Código: [Seleccionar]
package JavaArchivo;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Archivo {

    private File fichero;
    private String contenido;

    public Archivo() {

    }

    public Archivo(File fichero) {
        this.fichero = fichero;
        this.contenido = "";
        leerContenido();
    }

    public void leerContenido() {
        String linea = null;
        FileReader f = null;
        BufferedReader b = null;
        StringBuilder aux = new StringBuilder();
        try {
            f = new FileReader(this.fichero);
            b = new BufferedReader(f);
            try {

                while ((linea = b.readLine()) != null) {
                    aux.append(linea);
                    aux.append("\n");
                }
            } catch (IOException ex) {
                Logger.getLogger(principal.class.getName()).log(Level.SEVERE, null, ex);
            }

        } catch (FileNotFoundException ex) {
            Logger.getLogger(principal.class.getName()).log(Level.SEVERE, null, ex);
        }
        this.contenido = aux.toString();
    }

    public String getContenido() {
        return contenido;
    }

    public int getLineas() {
        if (this.contenido.equals("")) {
            return 0;
        } else {
            return this.contenido.split("\n").length;
        }
    }

    public int getPalabras() {
        if (this.contenido.equals("")) {
            return 0;
        } else {
            return this.contenido.replace("\n", "").split("\\s+").length;
        }
    }

    public int getCaracteres() {

        return this.contenido.replaceAll("\\s+", "").replace("\n", "").length();
    }

}

En sí el código no me marca error en la sintaxis o algo por el estilo, lo hace al ejecutarse
Por ejemplo si tengo un Archivo.txt que en su contenido tiene:
Citar
Hola
Buenas Tardes

Me dice que son 10 Líneas, 10 palabras y 80 caracteres...  :-\

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".