• Viernes 8 de Noviembre de 2024, 17:47

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 - gjbr

Páginas: [1]
1
C/C++ / Manejo de caracteres en forma escalonada
« en: Martes 16 de Noviembre de 2010, 15:42 »
Hola a todos, me gustaria que me ayudaran en el siguiente problema. Estoy intentando crear un pequeño programa que me imprima de manera escalonada una cadena de caracteres, eso es, si escribo GUSTAVO, el programa me debe de devolver en la pantalla las siguientes salidas:
gustavo
ustavo
stavo
tavo
avo
vo
o

g
gu
gus
gust
gusta
gustav
gustavo

o
vo
avo
tavo
stavo
ustavo
gustavo

Yo he realizado el siguiente programa:
#include <stdio.h>
#include <conio.h>
#include <string.h>

int main() {
int i, j, cont;
char nombre[80], tem[80];
printf("n Introduzca su nombre: ");
scanf("%s", nombre);

cont = strlen(nombre);

for(i = cont; i >= 0; i--) {
strcpy(tem,nombre);
tem = '';
printf("%sn", tem);
}
getch();
return 0;
}

El programa, necesita utilizar algunas de las funciones de manipulación de caracteres. También la misma aplicación deberá de mostrar el nombre invertido en forma escalonada, así por ejemplo si escribo Gustavo, como entrada, la aplicación deberá aparece impresa:

ovatsug
ovatsu
ovats
ovat
ova
ov
o

Les agradezco de antemano la atención brindada..

2
Java / Ajuste automático de un JFrame
« en: Domingo 24 de Octubre de 2010, 14:46 »
Hola a todos, me gustaría saber si en Java existe algún método que redimensione de manera automática el tamaño de un marco que ocupe la totalidad de la pantalla de su monitor. Esto es, si es ejecutada la aplicación en un computador que posee un monitor de 10", éste, el marco, se redimensione a dicha configuración; de ejecutar la misma aplicación en un computador que posee un monitor de 15.9", la aplicación sea redimensionada.

Les agradezco de antemano cualquier sugerencia que puedan brindarme

Saludos y que Dios los bendiga

3
Java / Problemas con aplicación
« en: Jueves 2 de Septiembre de 2010, 04:28 »
Hola a todos. Me gustaría que me ayudarán con la siguiente aplicación. La misma, que está escrita en netbeans 6.9, es ejecutada casi a la perfección. Estoy utilizando dos clases internas como manejadores de eventos (ActionListener), la primera me funciona a la perfección, no entando la segunda, me funciona parcialmente. Deseo, si así es el caso, si el usuario decide continuar con la ejecución de los cálculos, la aplicación vuelva a iniciarse. (Véase el conjunto de sentencias resaltadas en rojo).

El código es el siguiente:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.DecimalFormat;

public class Aplicacion_01 extends JFrame { //implements ActionListener {

   private JLabel alturaEtiqueta,  // etiqueta para alturaEntrada
                  pesoEtiqueta,    // etiqueta para pesoEntrada
                  IMCEtiqueta,     // etiqueta para mostrar el IMC
                  infrapeso,       // etiqueta para indicar anorexia
                  bajopeso1,       // etiqueta para indicar delgadez moderada.
                  bajopeso2,       // etiqueta para indicar delgadez aceptada.
                  normal,          // etiqueta para indicar pesona normal.
                  preobeso,        // etiqueta para indicar pesona obesita
                  obeso1,          // etiqueta para indicar pesona obesa.
                  obeso2,          // etiqueta para indicar pesona pasada.
                  obeso3,          // etiqueta para indicar pesona pasada.
                  seguir;          // etiqueta para continuar o no.
                                                 
   private JTextField alturaEntrada,  // tomar la altura del usuario
                      pesoEntrada;    // tomar el peso del usuario

   private JButton calcularBoton,  // el usuario pulsa este botón
                   Si,              // etiqueta que permite continuar.
                   No;              // etiqueta que permite salir.
   private JPanel Continuar, Boton;
   Container contenidoBoton = getContentPane();

public Aplicacion_01() {
// Procede a delimitar el marco.
   setTitle("Determinación del ìndice corporal.");
   setLayout(new FlowLayout()); // establece el esquema del marco.
   contenidoBoton.setBackground(Color.white);
   setSize(400,220);
   setLocationRelativeTo(null);

// Comienza a crear las ventanas.
   alturaEtiqueta = new JLabel("Su altura (en metros, p.e. 1.88):");
   alturaEntrada = new JTextField(5);
   pesoEtiqueta = new JLabel("   Su peso (en kilogramos, p.e. 180.5):");
   pesoEntrada = new JTextField(5);
   calcularBoton = new JButton("  Calcula el IMC  ");
   calcularBoton.setBackground(Color.BLUE);
   calcularBoton.setForeground(Color.YELLOW);
   IMCEtiqueta = new JLabel("Este es su IMC:");
   IMCEtiqueta.setForeground(Color.MAGENTA);
 
// Identifica los diversos aspectos de las caracterìsticas de una persona.
   infrapeso = new JLabel();
   infrapeso.setText("Usted se encuentra en estado anoréxico.");
   infrapeso.setForeground(Color.darkGray);

   bajopeso1 = new JLabel();
   bajopeso1.setText("Usted se encuentra en estado delgadez moderada.");
   bajopeso1.setForeground(Color.red);

   bajopeso2 = new JLabel();
   bajopeso2.setText("Usted se encuentra en estado delgadez aceptable.");
   bajopeso2.setForeground(Color.yellow);

   normal = new JLabel();
   normal.setText("Usted se encuentra bajo un peso normal.");
   normal.setForeground(Color.blue);
   preobeso = new JLabel();
   preobeso.setText("Usted se encuentra un poco gordito(a).");
   preobeso.setForeground(Color.orange);

   obeso1 = new JLabel();
   obeso1.setText("Usted se encuentra un poco obeso(a).");
   obeso1.setForeground(Color.magenta);

   obeso2 = new JLabel();
   obeso2.setText("Usted se encuentra en estado de obesidad.");
   obeso2.setForeground(Color.red);

   obeso3 = new JLabel();
   obeso3.setText("Usted se encuentra en estado de obesidad extrema.");
   obeso3.setForeground(Color.darkGray);

// Añade las diversas etiquetas.
   add(alturaEtiqueta);
   alturaEntrada.setBorder(BorderFactory.createLineBorder(Color.blue,2));
   add(alturaEntrada);

   add(pesoEtiqueta);
   pesoEntrada.setBorder(BorderFactory.createLineBorder(Color.blue,2));
   add(pesoEntrada);

   add(calcularBoton);
   add(IMCEtiqueta);
   Calculo calcular = new Calculo();
   calcularBoton.addActionListener(calcular);
} // cierre del constructor Aplicacion_01.

public static void main(String[] args) {
       JFrame.setDefaultLookAndFeelDecorated(true);
       JDialog.setDefaultLookAndFeelDecorated(true);
       Aplicacion_01 figura = new Aplicacion_01();
       JOptionPane.showMessageDialog(null, "Esta aplicación muestra el" +
               "índice corporal de una persona así n" +
               " como su estado físico actual.", "Objetivo",
               JOptionPane.INFORMATION_MESSAGE);
       figura.setVisible(true);
              figura.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  } // cierre del método main.

private class Calculo implements ActionListener { /* Clase interna para manejar
                                                   * eventos de botón. */
    public void actionPerformed(ActionEvent evento) { /* Maneja eventos de
                                                       * botón. */
       DecimalFormat digitos = new DecimalFormat("0.00");
       String alturaCadena, pesoCadena, resultado, bajopeso;
       double peso, altura;
       double imc;

// obtener valores de entrada
       alturaCadena = alturaEntrada.getText();
       pesoCadena = pesoEntrada.getText();

// convertir la entrada a números
       altura = convertirAdouble(alturaCadena);
       peso = convertirAdouble(pesoCadena);

// calcular el IMC
       imc = calcularIMC(altura, peso);

// mostrar el resultado
       resultado = "Su IMC es: " +digitos.format(imc);
       IMCEtiqueta.setText(resultado);

// Establece las diversas condiciones de la persona.
       if(imc < 16.00) {
          add(infrapeso);
          continuacion();
       }
       if(imc < 17.00 && imc >= 16.00) {
          add(bajopeso1);
          continuacion();
       }
       if(imc < 18.49 && imc >= 17.00) {
          add(bajopeso2);
          continuacion();
       }
       if(imc < 24.99 && imc >= 18.50) {
          add(normal);
          continuacion();
       }
       if(imc < 29.99 && imc >= 25.00) {
          add(preobeso);
          continuacion();
       }
       if(imc < 34.99 && imc >= 30.00) {
          add(obeso1);
          continuacion();
       }
       if(imc < 39.99 && imc >= 35.00) {
          add(obeso2);
          continuacion();
       }
       if(imc >= 40.00) {
          add(obeso3);
          continuacion();
       }
    } // cierre del método interno actionPerformed.
} // cierre de la clase interna Calculo.

private double convertirAdouble(String cad) {
    Double objetoDouble = new Double(cad);
    return objetoDouble.doubleValue();
} // cierre del método convertirAdouble.

private double calcularIMC(double altura, double peso) {
    double imc;
    imc = peso/Math.pow(altura,2);
    return imc;
   } // cierre del método calcularIMC.

void continuacion() {
   Continuar = new JPanel(new BorderLayout());
   Boton = new JPanel();
   Si = new JButton("Si");
   No = new JButton("No");
   Si.setBackground(new Color(0,255,31,150));
   Si.setForeground(new Color(255,0,0));
   No.setBackground(new Color(0,255,31,150));
   No.setForeground(new Color(255,0,0));
   seguir = new JLabel();
   seguir.setText("¿Desea seguir calculando?");
   Boton.add(Si);
   Boton.add(No);
   ControlBoton control = new ControlBoton();
   Si.addActionListener(control);
   No.addActionListener(control);
   add(seguir);
   contenidoBoton.add(Continuar);
   Continuar.add(Boton, BorderLayout.SOUTH);
  } // cierre del método continuacion.

private class ControlBoton implements ActionListener {
    public void actionPerformed(ActionEvent evento) {
         if(evento.getSource() == Si) {
            evento.getActionCommand();
           new Aplicacion_01();
        } else if (evento.getSource() == No) {
            evento.getActionCommand();
            salida();
            setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        }
    }// cierre del método actionPerformed.
} // cierre de la clase interna privada ControlBoton.


void salida() {
    JDialog.setDefaultLookAndFeelDecorated(true);
    JOptionPane.showMessageDialog(null, "Ha sido un placer haber " +
              "trabajado con usted. Hasta luego...", "Salida",
              JOptionPane.INFORMATION_MESSAGE);
   } // cierre del método salida.
} // cierre de la clase Aplicacion_01.

Me podrían indicar y corregir de ser posible en donde consiste mi falla.

LEs agradezco de antemano, cualquier ayuda brindada

4
Java / Sinónimo de drawString
« en: Domingo 15 de Agosto de 2010, 00:43 »
Hola a todos, me gustaría saber si existe algún método que realice funciones semejantes a las realizada por el método de drawString, pero que no utilice la referencia "Graphics g" referente al método paint(Graphics g).

De existe dicho método me podrían indicar cómo funciona el mismo con algún ejemplo ilustrativo, o de ser posible indicarme la página donde dicha información exista.

Agradeciendo la ayuda de antemano.

Saludos

5
Java / Texto extenso haciendo uso de JTextField y JScrollPane
« en: Jueves 12 de Agosto de 2010, 15:20 »
Hola a todos, me gustaría que me ayudaran en el siguiente problema. Tengo una aplicación en la que se pone de manifiesto todos los estilos de letras que el usuario puede obtener, mediante el uso del método getFont.

La aplicación es bastante simple, al ejecutarla en netbeans 6.9, la misma despliega el conjunto de tipos de letras existentes. Lo que deseo hacer, es que una aplicación que me permita visualizar la totalidad de los tipos de letras, mediante la implementación de las clases JTextArea y JScrollPane.

Agradezco sinceramente de antemano la ayuda brindada.

import java.awt.*;
import javax.swing.*;

public class FuentesDisponibles extends JFrame {
private JTextArea texto;
private JScrollPane pane;
private JTextField fuentedetexto;
Container contenedor = getContentPane();

public FuentesDisponibles() {
/* texto = new JTextArea();
texto.setColumns(30);
texto.setRows(10);
texto.setEditable(false);
// contenedor.add(texto);

fuentedetexto = new JTextField();
fuentedetexto.setColumns(30);
pane = new JScrollPane(texto); */
setSize(550,150);
setLocationRelativeTo(null);
// add(texto);
} // cierre del constructor.

public void paint(Graphics g) {
super.paint(g);
// String [] listaFuentes = getToolkit().getFontList();
String [] listaFuentes = GraphicsEnvironment.getLocalGraphicsEnvironment()
.getAvailableFontFamilyNames();
Font unaFuente = g.getFont();

for(int i = 0; i <listaFuentes.length; i++) {
g.setFont(unaFuente);
g.drawString(listaFuentes, 20, i * 20 + 40);
Font f = new Font(listaFuentes, Font.PLAIN + Font.BOLD, 12);
g.setFont(f);
g.drawString( "Simulación de modelos físicos.", 220, i * 20 + 40);
}
} // cierre del método paint.

public static void main(String[] args) {
FuentesDisponibles fuente = new FuentesDisponibles();
fuente.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
fuente.setVisible(true);
} // cierre del método main
} // cierre de la clase FuentesDisponibles.

6
Java / Problemas con setBackground..
« en: Domingo 8 de Agosto de 2010, 19:17 »
Hola a todos, tengo una aplicación bastante simple en la que me despliega una degradación de colores. El problema consiste en que el fondo del JFrame se me presenta transparente. He intentado colocar el método setBackground(Color c) en diversos lugares sin resultados algunos. Me podrían ayudar en este problemita por favor.

Agradezco de antemano la ayuda brindada. Trabajo en netbeans 6.9.


import java.awt.*;
import javax.swing.*;
import java.awt.geom.Rectangle2D;

public class EJEMPLOCOLORES extends JFrame {
Container contenedor = getContentPane();

public EJEMPLOCOLORES() {
setTitle("**** Bloques de colores. ****");
} // cierre del constructor

public void paint(Graphics g) {
int limit, rojo, verde, azul, alfa;
float s, x, y, ratio;
Graphics2D gd2 = (Graphics2D) g;
// contenedor.setBackground(Color.white);
Dimension dim = getSize();
gd2.translate(dim.width/2, dim.height/2);
Color[] colors = {Color.WHITE, Color.LIGHT_GRAY, Color.GRAY,
Color.DARK_GRAY, Color.BLACK, Color.RED, Color.PINK,
Color.ORANGE, Color.YELLOW, Color.GREEN, Color.MAGENTA,
Color.CYAN, Color.BLUE};
limit = colors.length;
s = 20;
x = -s * limit/2;
y = -s * 3/2;

// Se muestran los colores predefinidos
for(int i = 0; i < limit; i++) {
Rectangle2D rect = new Rectangle2D.Float(x + s * i, y, s, s);
gd2.setColor(colors);
gd2.fill(rect);
}

// Se muestra un gradiente lineal
y += s;
Color c1 = Color.YELLOW;
Color c2 = Color.blue;
for(int i = 0; i < limit; i++) {
ratio = (float)i/(float)limit;
rojo = (int)(c2.getRed() * ratio + c1.getRed() * (1.0 - ratio));
verde = (int)(c2.getGreen() * ratio + c1.getGreen() * (1.0 - ratio));
azul = (int)(c2.getBlue() * ratio + c1.getBlue() * (1.0 - ratio));
Color color = new Color(rojo, verde, azul, 150);
Rectangle2D rect = new Rectangle2D.Float(x + s * i, y, s, s);
gd2.setColor(color);
gd2.fill(rect);
}

// Se muestra un gradiente alfa
y += s;
c1 = Color.RED;
for(int i = 0; i < limit; i++) {
alfa = (int)(255 * (float)i/(float)limit);
Color color = new Color(c1.getRed(), c1.getGreen(), c1.getBlue(), alfa);
Rectangle2D rect = new Rectangle2D.Float(x + s * i, y, s, s);
gd2.setColor(color);
gd2.fill(rect);
}

// Dibujamos un marco alrededor de los cuadrados
gd2.setColor(Color.BLACK);
gd2.draw(new Rectangle2D.Float(x, y - s * 2, s * limit, s * 3));
} // cierre del método paint.

public static void main(String[] args) {
EJEMPLOCOLORES aplicacion = new EJEMPLOCOLORES();
aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// aplicacion.setBackground(Color.yellow);
aplicacion.setSize(300, 200);
aplicacion.setLocationRelativeTo(null);
aplicacion.setVisible(true);
} // cierre del método main.
} // CIERRE DE EJEMPLOCOLORES

Páginas: [1]