gcvictorgc escribió:Hola, estamos programando una práctica en java en la universidad
No es nada complicado, es leer de un fichero una serie de datos y hacer un par de opraciones con ellos
El caso es que teniamos una duda y el profesor me ha dicho que cree un objeto de la clase que contiene el metodo main, dentro del propio metodo main. Para poder tener acceso a una serie de variables. Funciona. Ese no es el problema.
A mi me parece una mala práctica la recomendación del profesor y le explicado por qué pero no le he convencido, así que os lo pregunto a vosotros:
Lo que yo digo es, ¿de que te sirve que el método main sea static si vas a estar creando objetos de la clase que lo contiene, y además dentro del propio metodo main?
Un saludo
Waninkoko escribió:gcvictorgc escribió:Hola, estamos programando una práctica en java en la universidad
No es nada complicado, es leer de un fichero una serie de datos y hacer un par de opraciones con ellos
El caso es que teniamos una duda y el profesor me ha dicho que cree un objeto de la clase que contiene el metodo main, dentro del propio metodo main. Para poder tener acceso a una serie de variables. Funciona. Ese no es el problema.
A mi me parece una mala práctica la recomendación del profesor y le explicado por qué pero no le he convencido, así que os lo pregunto a vosotros:
Lo que yo digo es, ¿de que te sirve que el método main sea static si vas a estar creando objetos de la clase que lo contiene, y además dentro del propio metodo main?
Un saludo
Yo creo que es totalmente correcto y lo apropiado. Voy a intentar explicarme.
La función 'main' no es más que un punto de entrada a la aplicación, o en otras palabras, la primera función que se ejecuta para iniciar todo el proceso de la aplicación. Por tanto es lógico que sea estático ya que tiene que existir y ser accesible desde el inicio, y eso no se puede conseguir si no fuera estático. Esto lo explico simplemente para ver porque 'main' tiene que ser estático y que ello no es un motivo para no poder instanciar, dentro de dicho 'main', la clase que lo contiene.
Desde mi punto de vista, en un lenguaje OO como Java, lo correcto es siempre trabajar con instancias de las clases salvo en aquellos casos que una clase estática (y con clase estática quiero simplemente referirme a una clase con solamente métodos estáticos y no instanciable) sea una solución más apropiada ya que crear instancias de ella no tenga sentido alguno por su finalidad. Es muy normal ver clases que suelen contienen un o varios métodos estáticos que sirven sencillamente como ayuda para instanciar la clase que las contiene, similar a una factoría de objetos.
Espero que mi mensaje y la explicación se entiendan bien y sean coherentes, estoy medio dormido pero quería dejar mi punto de vista
gcvictorgc escribió:Hola, estamos programando una práctica en java en la universidad
No es nada complicado, es leer de un fichero una serie de datos y hacer un par de opraciones con ellos
El caso es que teniamos una duda y el profesor me ha dicho que cree un objeto de la clase que contiene el metodo main, dentro del propio metodo main. Para poder tener acceso a una serie de variables. Funciona. Ese no es el problema.
A mi me parece una mala práctica la recomendación del profesor y le explicado por qué pero no le he convencido, así que os lo pregunto a vosotros:
Lo que yo digo es, ¿de que te sirve que el método main sea static si vas a estar creando objetos de la clase que lo contiene, y además dentro del propio metodo main?
Un saludo
do{
//PREGUNTO QUE SE QUIERE CREAR
do{
System.out.println("que quiere");
System.out.println("nombre");
System.out.println("nombre y apellido");
veredicto=teclado.nextLine();
}while(!veredicto.equalsIgnoreCase("nombre")&&!veredicto.equalsIgnoreCase("nombre y apellido")&&!veredicto.equals("no"));
if (veredicto.equalsIgnoreCase("nombre")){
System.out.println("Introduzca el nombre ");
nombre.setNombre(teclado.nextLine());
System.out.println("+Cliente.getNombre()+" Ha sido creado y agregado a la lista");
System.out.println("quiere poner algo mas");
teclado.nextline();
//si fuera no se terminaria la aplicacióm si pone si quiero que vuelva pero siempre falla y no se que poner
}
}while(!Respuesta.equalsIgnoreCase("nombre")&&!Respuesta.equalsIgnoreCase("apellido")&&!&&repetir.equalsIgnoreCase("si"));
//Vamos a guardar el nombre del cliente y su compra
try{ String lineaArchivo;
String fuenteArchivo=Nombre.getNombre();
BufferedReader fuenteSalida;
String fuentevinilo=apellido.getTitulo();
fuenteSalida = new BufferedReader(
new StringReader(fuenteArchivo));
// Se define un stream de salida (PrintWriter)
// que tomara los datos de memoria (BufferedWriter)
// y los escribira en un archivo (FileWriter)
PrintWriter archivoSalida;
archivoSalida = new PrintWriter(
new BufferedWriter(
//desde este fichero se podrá ver el nombre y articulo ademas de poderse borrar facilmente
new FileWriter("C:nombres.txt")));
while ((lineaArchivo = fuenteSalida.readLine()) != null)
//Datos que se guardaran en el fichero de texto
archivoSalida.println(1 + " nombre: " + lineaArchivo );
archivoSalida.println(2+ " apellido :"+fuentevinilo);
// Se cierra el stream de salida
archivoSalida.close(); }
catch (IOException e) {
System.out.println("Excepcion Entrada/Salida");
}
}
}
public class PatataCaliente {
public static void main (String []args){
// Variables
int numero = 0;// Que el usuario introduce por pantalla
int intentos = 0;// intentos del usuario. Máximo 10
int numPregunta = (int)(Math.random()*3);
String pregunta="";
int respuesta = 0;
// Ejecucion del programa
switch( numPregunta ){
case 0:
pregunta = "En que año nacio Albert Einstein ";
respuesta = 1893 ;
break ;
case 1:
pregunta = "En que año nacio Federico Garica Lorca ";
respuesta = 1893 ;
break ;
default:
pregunta = "En que año nacio Miguel Indurain ";
respuesta = 1893 ;
break ;
}
Scanner teclado = new Scanner(System.in);
do{
System.out.println(pregunta);
numero = teclado.nextInt();
intentos++;
System.out.println("La fecha seleccionada fue: " + numero);
if (numero > respuesta){
System.out.println("La fecha es menor. Intentalo otra vez.");
}
if (numero < respuesta ){
System.out.println("La fecha es mayor. Intentalo otra vez.");
}
}while( numero != respuesta && intentos < 10);
if( intentos < 11){
System.out.println("Enhorabuena. La fecha era: " + respuesta);
System.out.println("Lo has conseguido en " + intentos + " intentos." + " Te has salvado por los pelos.");
}else{
System.out.println("Has superado el numero de intentos: " + intentos + " Explota la patata.");
}
}
}
deivor escribió:Hola si me resolveis este problemas seré el más feliz de la tierra.
La duda es que no se como guardar mas de cadena de texto en un archivo.
MIra por ejemplo.
pongo dime tu nombre .
pones por ejemplo juan.
Y lo guardo.
Hasta hay genial pero si por ejemplo pongo esto:
elige entre estas dos opciones:
Nombre y apellido
solo nombre.
selccionamos solo el nombre, y lo ponemos y ahora yo pregunto; quiere guardar otro nombre si responde afirmativamente pues al volver a preguntar me peta siempre el programa no puedo volver hacia atras no me deja .
pongo mi ejemplo en codigo para que se entiendado{
//PREGUNTO QUE SE QUIERE CREAR
do{
System.out.println("que quiere");
System.out.println("nombre");
System.out.println("nombre y apellido");
veredicto=teclado.nextLine();
}while(!veredicto.equalsIgnoreCase("nombre")&&!veredicto.equalsIgnoreCase("nombre y apellido")&&!veredicto.equals("no"));
if (veredicto.equalsIgnoreCase("nombre")){
System.out.println("Introduzca el nombre ");
nombre.setNombre(teclado.nextLine());
System.out.println("+Cliente.getNombre()+" Ha sido creado y agregado a la lista");
System.out.println("quiere poner algo mas");
teclado.nextline();
//si fuera no se terminaria la aplicacióm si pone si quiero que vuelva pero siempre falla y no se que poner
}
}while(!Respuesta.equalsIgnoreCase("nombre")&&!Respuesta.equalsIgnoreCase("apellido")&&!&&repetir.equalsIgnoreCase("si"));
//Vamos a guardar el nombre del cliente y su compra
try{ String lineaArchivo;
String fuenteArchivo=Nombre.getNombre();
BufferedReader fuenteSalida;
String fuentevinilo=apellido.getTitulo();
fuenteSalida = new BufferedReader(
new StringReader(fuenteArchivo));
// Se define un stream de salida (PrintWriter)
// que tomara los datos de memoria (BufferedWriter)
// y los escribira en un archivo (FileWriter)
PrintWriter archivoSalida;
archivoSalida = new PrintWriter(
new BufferedWriter(
//desde este fichero se podrá ver el nombre y articulo ademas de poderse borrar facilmente
new FileWriter("C:nombres.txt")));
while ((lineaArchivo = fuenteSalida.readLine()) != null)
//Datos que se guardaran en el fichero de texto
archivoSalida.println(1 + " nombre: " + lineaArchivo );
archivoSalida.println(2+ " apellido :"+fuentevinilo);
// Se cierra el stream de salida
archivoSalida.close(); }
catch (IOException e) {
System.out.println("Excepcion Entrada/Salida");
}
}
}
teesala escribió:gcvictorgc escribió:Hola, estamos programando una práctica en java en la universidad
No es nada complicado, es leer de un fichero una serie de datos y hacer un par de opraciones con ellos
El caso es que teniamos una duda y el profesor me ha dicho que cree un objeto de la clase que contiene el metodo main, dentro del propio metodo main. Para poder tener acceso a una serie de variables. Funciona. Ese no es el problema.
A mi me parece una mala práctica la recomendación del profesor y le explicado por qué pero no le he convencido, así que os lo pregunto a vosotros:
Lo que yo digo es, ¿de que te sirve que el método main sea static si vas a estar creando objetos de la clase que lo contiene, y además dentro del propio metodo main?
Un saludo
Es una chapuza, lo ideal seria crear una clase "utilidades" con funciones estaticas las cuales podreis llamar desde el main sin crear un objeto "utilidades".
Saludos
import java.awt.*;
import javax.swing.ImageIcon;
public class cuatroenraya extends javax.swing.JFrame {
public cuatroenraya() {
initComponents();
getContentPane().setBackground(Color.black);
this.jTextField1.setVisible(false);
this.jButton4.setVisible(false);
this.jTextField2.setVisible(false);
this.jButton5.setVisible(false);
this.jButton6.setVisible(false);
}
boolean vez=false;
static int vector[] = new int [7];
static int tablero[][] = new int[6][7];
int turnoj1=1;
int turnoj2=1;
boolean finpartida;
boolean numjug;
public static void inicializotablero()
{
for(int i=0;i<6;i++)
{
for (int j=0;j<7;j++)
{
tablero[i][j]=0;
}
}
for(int i=0;i<7;i++)
{
vector[i]=0;
}
}
void movimientomaquina()
{
boolean puesto = false;
int h;
int x;
for(int i=0;i<6;i++)
{
for (int j=0;j<7;j++)
{
if(j>0 && j<=3)
{
if(!puesto && tablero[i][j]==1 && tablero[i][j+1]==1 && tablero[i][j+2]==1)
{
h=j;
if(tablero[i][h-1]==0)
{
h=h-1;
x=5-vector[h];
if(x>=0)
{
tablero[x][h]=2;
vector[h]++;
puesto=true;
}
}
else if(tablero[i][h+3]==0)
{
h=h+3;
x=5-vector[h];
if(x>=3)
{
tablero[5-vector[x]][h]=2;
vector[x]++;
puesto=true;
}
}
}
}
else
{
if(i>=3 && j<=4)
{
if(!puesto && tablero[i][j]==1 && tablero[i-1][j]==1 && tablero[i-2][j]==1)
{
h=j;
x=h;
tablero[5-vector[h]][h]=2;
vector[h]++;
puesto=true;
}
}
else
{
if( i>=3 && j<=3)
{
if(!puesto && tablero[i][j]==1 && tablero[i-1][j+1]==1 && tablero[i-2][j+2]==1 && tablero[i-3][j+2]!=0)
{
h=j;
j=j+2;
tablero[5-vector[h]][h]=2;
vector[h]++;
puesto=true;
}
}
else
{
if(i>=3 && j>=3)
{
if(!puesto && tablero[i][j]==1 && tablero[i-1][j+1]==1 && tablero[i-2][j-2]==1 && i>=3 && j>=3 && tablero[i-3][j-2]!=0)
{
h=j;
j=j-2;
tablero[5-vector[h]][h]=2;
vector[h]++;
puesto=true;
}
}
}
}
}
}
}
if(vez==false && !puesto)
{
int colofich= (int) Math.random()*7;
tablero[5-vector[colofich]][colofich]=2;
vector[colofich]++;
vez=true;
}
else
{
for (int i=0;i<6;i++)
{
for(int j=0;j<7;j++)
{
if(tablero[i][j]==2)
{
if(j<6)
{
if(tablero[i][j+1]==0 && j<6 && !puesto)
{
h=j;
h=h+1;
tablero[5-vector[h]][h]=2;
vector[h]++;
puesto=true;
}
}
else
{
if(i>=1 && tablero[i-1][j]==0 && !puesto)
{
tablero[5-vector[j]][j]=2;
vector[j]++;
puesto=true;
}
else
{
if( i>=1 && tablero[i-1][j+1]==0 && !puesto)
{
h=j;
h=h+1;
tablero[5-vector[h]][h]=2;
vector[h]++;
puesto=true;
}
else
{
if(i>=1 && j>=1 && tablero[i-1][j-1]==0 && !puesto)
{
h=j;
h=h-1;
tablero[5-vector[h]][h]=2;
vector[h]++;
puesto=true;
}
else
{
if(!puesto)
{
int colofich= (int) Math.random()*7;
tablero[5-vector[colofich]][colofich]=2;
vector[colofich]++;
puesto=true;
}
}
}
}
}
}
}
}
}
}
public static boolean ganadora()
{
boolean gan=false;
for(int i=0;i<6;i++)
{
for(int j=0;j<7;j++)
{
ganar(i,j);
if(ganar(i,j)==true)
{
gan=true;
}
}
}
return gan;
}
public static void menu() throws Exception
{
inicializotablero();
}
@Override
public void paint(Graphics g) {
super.paint(g);
ImageIcon fondo = new ImageIcon(new ImageIcon(getClass().getResource("fondo.jpg")).getImage());
g.drawImage(fondo.getImage(), -150, 0, null);
dibujartablero(g);
}
void comprobarganadormj()
{
if(ganadora()==true)
{
if(turnoj1==turnoj2)
{
this.jLabel1.setText("Gana el jugador 2");
this.jButton4.setVisible(false);
this.jButton5.setVisible(false);
this.jButton6.setVisible(false);
this.jTextField1.setVisible(false);
this.jTextField2.setVisible(false);
}
if(turnoj1>turnoj2)
{
this.jLabel1.setText("Gana el jugador 1");
this.jButton4.setVisible(false);
this.jButton5.setVisible(false);
this.jButton6.setVisible(false);
this.jTextField1.setVisible(false);
this.jTextField2.setVisible(false);
}
}
}
void dibujartablero(Graphics g)
{
ImageIcon fichablanco = new ImageIcon(new ImageIcon(getClass().getResource("fichagris.png")).getImage());
ImageIcon ficharoja = new ImageIcon(new ImageIcon(getClass().getResource("ficharoja.png")).getImage());
ImageIcon fichanegra = new ImageIcon(new ImageIcon(getClass().getResource("fichanegra.png")).getImage());
int x=150;
int y=150;
for(int i=0;i<6;i++)
{
for(int j=0;j<7;j++)
{
if(tablero[i][j]==0)
{
g.drawImage(fichablanco.getImage(), x, y, null);
x=x+100;
if (j==tablero[i].length-1)
{
x=150;
y=y+80;
}
}
if(tablero[i][j]==1)
{
g.drawImage(ficharoja.getImage(), x, y, null);
x=x+100;
if (j==tablero[i].length-1)
{
x=150;
y=y+80;
}
}
if(tablero[i][j]==2)
{
g.drawImage(fichanegra.getImage(), x, y, null);
x=x+100;
if (j==tablero[i].length-1)
{
x=150;
y=y+80;
}
}
}
}
}
public void unjugador()
{
if(turnoj1==turnoj2)
{
this.jLabel1.setText("");
String text;
int n;
text=jTextField1.getText();
n=Integer.parseInt(text);
n=n-1;
tablero[5-vector[n]][n]=1;
vector[n]++;
turnoj1++;
repaint();
if(ganadora()==true)
{
this.jLabel1.setText("Gana el jugador 1");
this.jButton4.setVisible(false);
this.jButton5.setVisible(false);
this.jButton6.setVisible(false);
this.jTextField1.setVisible(false);
this.jTextField2.setVisible(false);
}
}
if(turnoj1-1==turnoj2)
{
movimientomaquina();
if(ganadora()==true)
{
this.jLabel1.setText("Gana el jugador 2");
this.jButton4.setVisible(false);
this.jButton5.setVisible(false);
this.jButton6.setVisible(false);
this.jTextField1.setVisible(false);
this.jTextField2.setVisible(false);
}
turnoj2++;
repaint();
}
}
public void multijugadorj1()
{
this.jLabel1.setText("");
if(turnoj1==turnoj2)
{
if(!ganadora())
{
String textj1;
int j1;
textj1=jTextField1.getText();
j1=Integer.parseInt(textj1);
j1=j1-1;
tablero[5-vector[j1]][j1]=1;
vector[j1]++;
jTextField1.setText("");
turnoj1++;
comprobarganadormj();
repaint();
}
}
else
{
this.jLabel1.setText("No es tu turno");
}
}
public void multijugadorj2()
{
this.jLabel1.setText("");
if(turnoj1-1==turnoj2)
{
String textj2;
int j2;
textj2=jTextField2.getText();
j2=Integer.parseInt(textj2);
j2=j2-1;
tablero[5-vector[j2]][j2]=2;
vector[j2]++;
jTextField2.setText("");
turnoj2++;
comprobarganadormj();
repaint();
}
else
{
this.jLabel1.setText("No es tu turno");
}
}
static boolean ganar(int i, int j)
{
boolean juggan;
if(derecha(i,j))
{
juggan=true;
}
else if(diagonalderecha(i,j))
{
juggan=true;
}
else if(diagonalizquierda(i,j))
{
juggan=true;
}
else if(abajo(i,j))
{
juggan=true;
}
else
{
juggan=false;
}
return juggan;
}
static boolean derecha (int i, int j)
{
boolean retorno;
if(j<3)
{
if(tablero[i][j]==tablero[i][j+1] && tablero[i][j]!=0)
{
if(tablero[i][j]==tablero[i][j+2] && tablero[i][j]!=0)
{
if(tablero[i][j]==tablero[i][j+3] && tablero[i][j]!=0)
{
retorno=true;
}
else
{
retorno=false;
}
}
else
{
retorno=false;
}
}
else
{
retorno=false;
}
}
else
{
retorno=false;
}
return retorno;
}
static boolean diagonalderecha (int i, int j)
{ boolean retorno;
if(i<=2 && j<=3)
{
if(tablero[i][j]==tablero[i+1][j+1] && tablero[i][j]!=0)
{
if(tablero[i][j]==tablero[i+2][j+2])
{
if(tablero[i][j]==tablero[i+3][j+3])
{
retorno=true;
}
else
{
retorno=false;
}
}
else
{
retorno=false;
}
}
else
{
retorno=false;
}
}
else
{
retorno=false;
}
return retorno;
}
static boolean abajo(int i, int j)
{
boolean retorno;
if(i<=2)
{
if(tablero[i][j]==tablero[i+1][j] && tablero[i][j]!=0)
{
if(tablero[i][j]==tablero[i+2][j] && tablero[i][j]!=0)
{
if(tablero[i][j]==tablero[i+3][j] && tablero[i][j]!=0)
{
retorno=true;
}
else
{
retorno=false;
}
}
else
{
retorno=false;
}
}
else
{
retorno=false;
}
}
else
{
retorno=false;
}
return retorno;
}
static boolean diagonalizquierda (int i, int j)
{
boolean retorno;
if(i<=2 && j>2)
{
if(tablero[i][j]==tablero[i+1][j-1] && tablero[i][j]!=0)
{
if(tablero[i][j]==tablero[i+2][j-2])
{
if(tablero[i][j]==tablero[i+3][j-3])
{
retorno=true;
}
else
{
retorno=false;
}
}
else
{
retorno=false;
}
}
else
{
retorno=false;
}
}
else
{
retorno=false;
}
return retorno;
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jTextField1 = new javax.swing.JTextField();
jButton4 = new javax.swing.JButton();
jTextField2 = new javax.swing.JTextField();
jButton5 = new javax.swing.JButton();
jButton6 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setBackground(new java.awt.Color(0, 0, 0));
jButton1.setText("Un Jugador");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setText("Multijugador");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jButton3.setText("Salir");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
jButton4.setText("Enviar");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
jButton5.setText("Enviar");
jButton5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton5ActionPerformed(evt);
}
});
jButton6.setText("Enviar");
jButton6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton6ActionPerformed(evt);
}
});
jLabel1.setFont(new java.awt.Font("Lucida Grande", 1, 14)); // NOI18N
jLabel1.setForeground(new java.awt.Color(204, 0, 0));
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap(871, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(jButton4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton6, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jTextField1, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jButton3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addComponent(jButton1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE))
.addComponent(jTextField2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(17, 17, 17))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jButton5)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addGap(60, 60, 60)
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addGap(33, 33, 33))))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(81, 81, 81)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton4)
.addComponent(jButton6, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(24, 24, 24)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton5)
.addGap(35, 35, 35)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(268, Short.MAX_VALUE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
System.exit(0);
}//GEN-LAST:event_jButton3ActionPerformed
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
this.jButton4.setVisible(false);
this.jTextField2.setVisible(true);
this.jButton5.setVisible(true);
this.jTextField1.setVisible(true);
this.jButton6.setVisible(true);
inicializotablero();
this.jTextField1.setText("");
this.jTextField2.setText("");
repaint();
}//GEN-LAST:event_jButton2ActionPerformed
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
this.jTextField1.setVisible(true);
this.jButton4.setVisible(true);
this.jTextField2.setVisible(false);
this.jButton5.setVisible(false);
this.jButton6.setVisible(false);
inicializotablero();
boolean vez=false;
int turnoj1=1;
int turnoj2=1;
this.jTextField1.setText("");
this.jTextField2.setText("");
repaint();
}//GEN-LAST:event_jButton1ActionPerformed
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
unjugador();
}//GEN-LAST:event_jButton4ActionPerformed
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
multijugadorj2();
}//GEN-LAST:event_jButton5ActionPerformed
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton6ActionPerformed
multijugadorj1();
}//GEN-LAST:event_jButton6ActionPerformed
/**
*
* @param args
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(cuatroenraya.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(cuatroenraya.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(cuatroenraya.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(cuatroenraya.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new cuatroenraya().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JButton jButton6;
private javax.swing.JLabel jLabel1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
// End of variables declaration//GEN-END:variables
}
ikiu escribió:Hola
Conocéis algún curso/master para profundizar en el ecosistema java? (maven, tomcat etc).
Se que existe internet y libros, pero quería saber si había algo mas guiado, dirigido, con personas
squarewave escribió:ikiu escribió:Hola
Conocéis algún curso/master para profundizar en el ecosistema java? (maven, tomcat etc).
Se que existe internet y libros, pero quería saber si había algo mas guiado, dirigido, con personas
No creo que haya cursos de esos, me debería meter yo a darlos, que hay mucha gente en el paro deseando currar de informático xDD.
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String connString="jdbc:odbc:Driver={Microsoft dBASE Driver (*.dbf)};DefaultDir=E:\\db";//DeafultDir indicates the location of the db
Connection connection=DriverManager.getConnection(connString);
String sql="SELECT * FROM table_name where condition";// usual sql query
Statement stmt=connection.createStatement();
ResultSet resultSet=stmt.executeQuery(sql);
while(resultSet.next())
System.out.println();
System.out.println();
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
catch (SQLException e) {
e.printStackTrace();
}
squarewave escribió:Yo no cogería de forma generalizada "libros" . Ten en cuenta las fechas de edición de los libros y que las cosas evolucionan bastante rápido.
Por ejemplo, no necesitas ser un puto masterchef de Maven para currar con él. Y en el libro Maven in Action te explican de todo. Pero para compilar y cuatro mierdas más, porque no creo que te pongas a picar plugins de Maven, te llega con los tutoriales que hay por Internet.
Kurace, ¿ has probado a consumir el DBF vía JDBC ? Es más lento, pero no te tienes que pelear con formatos.try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String connString="jdbc:odbc:Driver={Microsoft dBASE Driver (*.dbf)};DefaultDir=E:\\db";//DeafultDir indicates the location of the db
Connection connection=DriverManager.getConnection(connString);
String sql="SELECT * FROM table_name where condition";// usual sql query
Statement stmt=connection.createStatement();
ResultSet resultSet=stmt.executeQuery(sql);
while(resultSet.next())
System.out.println();
System.out.println();
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
catch (SQLException e) {
e.printStackTrace();
}
deivor escribió:Hola si me resolveis este problemas seré el más feliz de la tierra.
La duda es que no se como guardar mas de cadena de texto en un archivo.
MIra por ejemplo.
pongo dime tu nombre .
pones por ejemplo juan.
Y lo guardo.
Hasta hay genial pero si por ejemplo pongo esto:
elige entre estas dos opciones:
Nombre y apellido
solo nombre.
selccionamos solo el nombre, y lo ponemos y ahora yo pregunto; quiere guardar otro nombre si responde afirmativamente pues al volver a preguntar me peta siempre el programa no puedo volver hacia atras no me deja .
pongo mi ejemplo en codigo para que se entiendado{
//PREGUNTO QUE SE QUIERE CREAR
do{
System.out.println("que quiere");
System.out.println("nombre");
System.out.println("nombre y apellido");
veredicto=teclado.nextLine();
}while(!veredicto.equalsIgnoreCase("nombre")&&!veredicto.equalsIgnoreCase("nombre y apellido")&&!veredicto.equals("no"));
if (veredicto.equalsIgnoreCase("nombre")){
System.out.println("Introduzca el nombre ");
nombre.setNombre(teclado.nextLine());
System.out.println("+Cliente.getNombre()+" Ha sido creado y agregado a la lista");
System.out.println("quiere poner algo mas");
teclado.nextline();
//si fuera no se terminaria la aplicacióm si pone si quiero que vuelva pero siempre falla y no se que poner
}
}while(!Respuesta.equalsIgnoreCase("nombre")&&!Respuesta.equalsIgnoreCase("apellido")&&!&&repetir.equalsIgnoreCase("si"));
//Vamos a guardar el nombre del cliente y su compra
try{ String lineaArchivo;
String fuenteArchivo=Nombre.getNombre();
BufferedReader fuenteSalida;
String fuentevinilo=apellido.getTitulo();
fuenteSalida = new BufferedReader(
new StringReader(fuenteArchivo));
// Se define un stream de salida (PrintWriter)
// que tomara los datos de memoria (BufferedWriter)
// y los escribira en un archivo (FileWriter)
PrintWriter archivoSalida;
archivoSalida = new PrintWriter(
new BufferedWriter(
//desde este fichero se podrá ver el nombre y articulo ademas de poderse borrar facilmente
new FileWriter("C:nombres.txt")));
while ((lineaArchivo = fuenteSalida.readLine()) != null)
//Datos que se guardaran en el fichero de texto
archivoSalida.println(1 + " nombre: " + lineaArchivo );
archivoSalida.println(2+ " apellido :"+fuentevinilo);
// Se cierra el stream de salida
archivoSalida.close(); }
catch (IOException e) {
System.out.println("Excepcion Entrada/Salida");
}
}
}
squarewave escribió:Yo no cogería de forma generalizada "libros" . Ten en cuenta las fechas de edición de los libros y que las cosas evolucionan bastante rápido.
Por ejemplo, no necesitas ser un puto masterchef de Maven para currar con él. Y en el libro Maven in Action te explican de todo. Pero para compilar y cuatro mierdas más, porque no creo que te pongas a picar plugins de Maven, te llega con los tutoriales que hay por Internet.
Kurace, ¿ has probado a consumir el DBF vía JDBC ? Es más lento, pero no te tienes que pelear con formatos.try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String connString="jdbc:odbc:Driver={Microsoft dBASE Driver (*.dbf)};DefaultDir=E:\\db";//DeafultDir indicates the location of the db
Connection connection=DriverManager.getConnection(connString);
String sql="SELECT * FROM table_name where condition";// usual sql query
Statement stmt=connection.createStatement();
ResultSet resultSet=stmt.executeQuery(sql);
while(resultSet.next())
System.out.println();
System.out.println();
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
catch (SQLException e) {
e.printStackTrace();
}