elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [PREGUNTA] Fechas e Interfaz Grafica
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [PREGUNTA] Fechas e Interfaz Grafica  (Leído 4,742 veces)
Xephiro

Desconectado Desconectado

Mensajes: 239



Ver Perfil WWW
[PREGUNTA] Fechas e Interfaz Grafica
« en: 11 Junio 2008, 17:54 pm »

 :huh: :huh: Hola, estoy molestando nuevamente xD...

pero me gustaria saber si es posible en la interfaz grafica poder seleccionar una fecha haciendo que se desplegue un calendario ??? ... VB trae una opcion asi .. nose si java es posible hacer eso = ...


En línea

Casidiablo
Desarrollador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.919



Ver Perfil WWW
Re: [PREGUNTA] Fechas e Interfaz Grafica
« Respuesta #1 en: 11 Junio 2008, 23:26 pm »

No hay nada así en el API de Java, pero siempre puedes hacerlo tú mismo. Existe la clase Calendar que puedes usar como base:

http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html

O sino quieres programarlo de cero, puedes usar alguna que ya hayan hecho terceros. Puedes encontrar info aquí:

http://web.ukonline.co.uk/mseries/

Un saludo!


En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: [PREGUNTA] Fechas e Interfaz Grafica
« Respuesta #2 en: 2 Julio 2008, 02:45 am »

ya te fregaste por que ese problema es muy dificil de resolver
esplicando unas cosas antes de que te desesperes el calendario que usan casi todo el mundo mejor dicho todos es el conocido calendario gregoriano
bueno para crear tu propio calendario nesesitas conocer la clase Jtable(la clas para que puedas ver tu tablita) la clase defaultablemodel y finalmente la formula del calendario gregoriano que esta en wikipedia

http://es.wikipedia.org/wiki/Calcular_el_d%C3%ADa_de_la_semana

como no soy malo y no quiero que te de un derrame serebral aca esta el codigo
 bueno no te asuste por que solo es un poquito largo

esta es la clase mas inportante y es en si el calendario metela en un jframe como si metieras un jtextfield o un boton

package project1 ;

import java.awt.Color ;
import java.awt.Dimension ;
import java.awt.Font ;
import java.awt.Rectangle ;

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

import java.util.GregorianCalendar ;

import javax.swing.BorderFactory ;
import javax.swing.JButton ;
import javax.swing.JComboBox ;
import javax.swing.JOptionPane ;
import javax.swing.JPanel ;
import javax.swing.JScrollPane ;
import javax.swing.JTable ;
import javax.swing.JTextField ;
import javax.swing.UIManager ;
import javax.swing.table.DefaultTableModel ;

public class calendario extends JPanel {
    String data[][]={};
    String titulo[]={"L","M","M","J","V","S","D"};
    private JTable jTable1 = new JTable () ;
    private JComboBox jComboBox1 = new JComboBox () ;
    private JTextField txtaño = new JTextField () ;
    private JButton jButton1 = new JButton () ;
    private JButton jButton2 = new JButton () ;
    private JPanel jPanel1 = new JPanel () ;
    private DefaultTableModel calendario = new DefaultTableModel (data,titulo) ;
    private JScrollPane jScrollPane1 = new JScrollPane () ;
    private GregorianCalendar gregorianCalendar1 = new GregorianCalendar () ;
    int valdia[][]=new int [3][13],Mes[]=new int[13];
   
   
    public calendario () {
        try {
            jbInit () ;
        }
        catch ( Exception e ) {
            e.printStackTrace () ;
        }
    }

    private void jbInit ()
        throws Exception {
        this.setLayout ( null ) ;
        this.setBackground ( Color.white ) ;
        this.setBorder ( BorderFactory.createTitledBorder("fecha") ) ;
        this.setSize ( new Dimension ( 422 , 224 ) ) ;
        jTable1.setShowHorizontalLines ( false ) ;
        jTable1.setShowVerticalLines ( false ) ;
        jComboBox1.setBounds ( new Rectangle ( 15 , 30 , 130 , 30 ) ) ;
        jComboBox1.addItem("Enero");
        jComboBox1.addItem("Febrero");
        jComboBox1.addItem("Marso");
        jComboBox1.addItem("Abril");
        jComboBox1.addItem("Mayo");
        jComboBox1.addItem("Junio");
        jComboBox1.addItem("Julio");
        jComboBox1.addItem("Agosto");
        jComboBox1.addItem("Setiembre");
        jComboBox1.addItem("octubre");
        jComboBox1.addItem("Nobiembre");
        jComboBox1.addItem("Diciembre");
        jComboBox1.setSelectedIndex(gregorianCalendar1.get(gregorianCalendar1.MONTH));

        jComboBox1.addActionListener ( new ActionListener () {
                    public void actionPerformed ( ActionEvent e ) {
                        jComboBox1_actionPerformed(e) ;
                    }
                } ) ;
        txtaño.setBounds ( new Rectangle ( 10 , 5 , 100 , 30 ) ) ;
        txtaño.setText (""+gregorianCalendar1.get(gregorianCalendar1.YEAR) ) ;txtaño.addActionListener ( new ActionListener () {
                    public void actionPerformed ( ActionEvent e ) {
                        txtaño_actionPerformed(e) ;
                    }
                } ) ;
        jButton1.setText ( "+" ) ;
        jButton1.setBounds ( new Rectangle ( 110 , 5 , 40 , 15 ) ) ;
        jButton1.setFont ( new Font ( "Dialog" , 1 , 6 ) ) ;
        jButton1.addActionListener ( new ActionListener () {
                    public void actionPerformed ( ActionEvent e ) {
                        jButton1_actionPerformed(e) ;
                       
                    }
                } ) ;
        jButton2.setText ( "-" ) ;
        jButton2.setBounds ( new Rectangle ( 110 , 20 , 40 , 15 ) ) ;
        jButton2.addActionListener ( new ActionListener () {
                    public void actionPerformed ( ActionEvent e ) {
                        jButton2_actionPerformed(e) ;
                       
                    }
                } ) ;
        jPanel1.setBounds ( new Rectangle ( 245 , 25 , 155 , 40 ) ) ;
        jPanel1.setLayout ( null ) ;
        jPanel1.setBackground ( new Color ( 0 , 82 , 255 ) ) ;
        calendario.setRowCount ( 6 ) ;
        calendario.setColumnCount ( 7 ) ;
        jScrollPane1.setBounds ( new Rectangle ( 10 , 75 , 400 , 120 ) ) ;
        jPanel1.add ( jButton2 , null ) ;
        jPanel1.add ( jButton1 , null ) ;
        jPanel1.add ( txtaño , null ) ;
        jScrollPane1.getViewport ().add ( jTable1 , null ) ;
        this.add ( jScrollPane1 , null ) ;
        this.add ( jPanel1 , null ) ;
        this.add ( jComboBox1 , null ) ;
        jTable1.setModel ( calendario ) ;
       
        valdia[1][1]=0;
        valdia[1][2]=3;
        valdia[1][3]=3;
        valdia[1][4]=6;
        valdia[1][5]=1;
        valdia[1][6]=4;
        valdia[1][7]=6;
        valdia[1][8]=2;
        valdia[1][9]=5;
        valdia[1][10]=0;
        valdia[1][11]=3;
        valdia[1][12]=5;
        valdia[2][1]=0;
        valdia[2][2]=3;
        valdia[2][3]=4;
        valdia[2][4]=0;
        valdia[2][5]=2;
        valdia[2][6]=5;
        valdia[2][7]=0;
        valdia[2][8]=3;
        valdia[2][9]=6;
        valdia[2][10]=1;
        valdia[2][11]=4;
        valdia[2][12]=6;
        llenar_calemndario();
    }
    private void llenar_calemndario(){
        int A=Integer.parseInt(txtaño.getText()),M,esviesto=1,d=0,ultimodia=0,C,cont=0;
        if(A%4==0&A%100!=0){
            esviesto=2;
        }
        if(A%400==0){
            esviesto=2;
        }
        M=valdia[esviesto][jComboBox1.getSelectedIndex()+1];
        d=(A-1)%7;
        d=d+((A-1)/4-(3*(((A-1)/100)+1)/4))%7;
        d=d+M;
        d=d+1;
        d=d%7;
        if((jComboBox1.getSelectedIndex()+1)%2==1){
            ultimodia=31;   
        }
        if((jComboBox1.getSelectedIndex()+1)%2==0){
            ultimodia=30;   
        }
        if((jComboBox1.getSelectedIndex()+1)==2&esviesto==2){
            ultimodia=29;
        }
        if((jComboBox1.getSelectedIndex()+1)==2&esviesto==1){
            ultimodia=28;
        }
        if((jComboBox1.getSelectedIndex()+1)==7){
            ultimodia=31;           
        }
        if((jComboBox1.getSelectedIndex()+1)==8){
            ultimodia=31;           
        }
        if((jComboBox1.getSelectedIndex()+1)==9){
            ultimodia=30;           
        }
        if((jComboBox1.getSelectedIndex()+1)==10){
            ultimodia=31;           
        }
        if((jComboBox1.getSelectedIndex()+1)==11){
            ultimodia=30;           
        }
        if((jComboBox1.getSelectedIndex()+1)==12){
            ultimodia=31;           
        }   
        C=d;
        if(d==0){
            C=7;
        }
       
        for(int f=1;f<=6;f++){
            for(int c=1;c<=7;c++){
                calendario.setValueAt(null,f-1,c-1);
            }
        }
        for(int f=1;f<=6;f++){
            for(int c=C;c<=7&cont<=ultimodia-1;c++){
            cont++;   
            calendario.setValueAt(cont,f-1,c-1);
            }
            C=1;
        }
        }
    private void jButton1_actionPerformed ( ActionEvent e ) {
    txtaño.setText((Integer.parseInt(txtaño.getText())+1)+"");
    llenar_calemndario();
    }

    private void jButton2_actionPerformed ( ActionEvent e ) {
    txtaño.setText((Integer.parseInt(txtaño.getText())-1)+"");
    llenar_calemndario();
    }

    private void jComboBox1_actionPerformed ( ActionEvent e ) {
    llenar_calemndario();
    }

    private void txtaño_actionPerformed ( ActionEvent e ) {
    llenar_calemndario();
    }
   
}


por si no te sale aca esta el resto de las clases


import java.awt.Dimension ;
import java.awt.Toolkit ;

import javax.swing.JFrame ;
import javax.swing.UIManager ;

public class Application1 {
    public Application1 () {
        JFrame frame = new Frame1() ;
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize() ;
        Dimension frameSize = frame.getSize() ;
        if ( frameSize.height > screenSize.height ) {
            frameSize.height = screenSize.height ;
        }
        if ( frameSize.width > screenSize.width ) {
            frameSize.width = screenSize.width ;
        }
        frame.setLocation( ( screenSize.width - frameSize.width ) / 2, ( screenSize.height - frameSize.height ) / 2 ) ;
        frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ) ;
        frame.setVisible(true) ;
    }

    public static void main ( String[] args ) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()) ;
        }
        catch ( Exception e ) {
            e.printStackTrace() ;
        }
        new Application1() ;
    }
}

y la ventana

package project1 ;

import java.awt.Dimension ;

import java.awt.Rectangle ;

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

public class Frame1 extends JFrame {

    private calendario calendario1 = new calendario () ;

    public Frame1 () {
        try {
            jbInit () ;
        }
        catch ( Exception e ) {
            e.printStackTrace () ;
        }
    }

    private void jbInit ()
        throws Exception {
        this.getContentPane().setLayout( null ) ;
        this.setSize( new Dimension ( 481 , 305 ) ) ;
        calendario1.setBounds ( new Rectangle ( 10 , 15 , 515 , 235 ) ) ;
        calendario1.setBounds ( new Rectangle ( 15 , 15 , 430 , 235 ) ) ;
        this.getContentPane ().add ( calendario1 , null ) ;
    }
}
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
pregunta sobre dhclient interfaz?
Unix/Unix-Like
bl@ck 2 4,758 Último mensaje 22 Septiembre 2014, 15:58 pm
por bl@ck
Pregunta : Como se grafica un vector (x,y,z) en vb6?
Programación Visual Basic
.:: KsV ::. 0 1,583 Último mensaje 11 Julio 2015, 05:11 am
por .:: KsV ::.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines