• No se han encontrado resultados

Programación Avanzada, curso 2011 Juan Manuel Fernández Ejemplo muy simple del uso de Tablas

N/A
N/A
Protected

Academic year: 2021

Share "Programación Avanzada, curso 2011 Juan Manuel Fernández Ejemplo muy simple del uso de Tablas"

Copied!
8
0
0

Texto completo

(1)

Programación Avanzada, curso 2011

Juan Manuel Fernández

Ejemplo muy simple del uso de Tablas import javax.swing.SwingUtilities;

import java.awt.BorderLayout;

import javax.swing.JPanel;

import javax.swing.JFrame;

import java.awt.Dimension;

import javax.swing.JTable;

import java.awt.Rectangle;

import javax.swing.JButton;

/*

* Ejemplo de uso de tablas

* Juan Manuel Fernández Peña, curso 2011

* Este programa muestra una tabla sobre la cual se mueve un símbolo * de acuerdo con los botones que se elijan.

* Usa una clase interna (Matriz) para representar los datos del problema.

* Se hizo interna para tener acceso directo al JTabla.

* De otro modo debe pasarse un parámetro para que pueda actualizarla new Matriz(this, 10,10,5,5) *

* El ejemplo enfatiza que la interfaz es una representación gráfica (en este caso con @) * pero los datos están en una clase diferente (Matriz) en este caso como valores booleanos * (podrían ser de cualquier tipo, incluso figuras)

*/

public class IUTabla extends JFrame {

private static final long serialVersionUID = 1L;

private JPanel jContentPane = null;

private JTable jTable = null;

private JButton jButton = null;

private JButton jButton1 = null;

(2)

private JButton jButton2 = null;

private JButton jButton3 = null;

private JButton jButton4 = null;

private Matriz miTabla;

/*

* Clase interior */

public class Matriz{

boolean [][]laMatriz;

int xmax, ymax, xact, yact;

public Matriz(int xm, int ym, int x0, int y0){

laMatriz = new boolean[xm][ym];

xmax = xm; ymax = ym;

xact = x0; yact = y0;

for (int ix=0;ix<xm;ix++)

for (int jx=0;jx<ym;jx++){

laMatriz[ix][jx]=false;

borra(ix,jx);

}

laMatriz[x0][y0]=true;

pinta(xact, yact);

}

public void norte(){

if (xact>0){

borra(xact,yact);

xact--;

pinta(xact,yact);

} }

public void sur(){

(3)

if (xact<xmax-1){

borra(xact,yact);

xact++;

pinta(xact,yact);

} }

public void este(){

if (yact<ymax-1){

borra(xact,yact);

yact++;

pinta(xact,yact);

} }

public void oeste(){

if (yact>0){

borra(xact,yact);

yact--;

pinta(xact,yact);

} }

} /*

* Termina clase interior */

private JTable getJTable() { if (jTable == null) {

jTable = new JTable(10,10);

jTable.setBounds(new Rectangle(17, 15, 281, 248));

}

return jTable;

}

(4)

/**

* This method initializes jButton *

* @return javax.swing.JButton */

private JButton getJButton() { if (jButton == null) {

jButton = new JButton();

jButton.setBounds(new Rectangle(418, 59, 43, 33));

jButton.setText("N");

jButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {

System.out.println("N actionPerformed()");

miTabla.norte();

} });

}

return jButton;

} /**

* This method initializes jButton1 *

* @return javax.swing.JButton */

private JButton getJButton1() { if (jButton1 == null) {

jButton1 = new JButton();

jButton1.setBounds(new Rectangle(418, 158, 44, 36));

jButton1.setText("S");

jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {

System.out.println("S actionPerformed()");

(5)

miTabla.sur();

} });

}

return jButton1;

} /**

* This method initializes jButton2 *

* @return javax.swing.JButton */

private JButton getJButton2() { if (jButton2 == null) {

jButton2 = new JButton();

jButton2.setBounds(new Rectangle(481, 106, 44, 37));

jButton2.setText("E");

jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {

System.out.println(" E actionPerformed()");

miTabla.este();

} });

}

return jButton2;

} /**

* This method initializes jButton3 *

* @return javax.swing.JButton */

private JButton getJButton3() {

(6)

if (jButton3 == null) {

jButton3 = new JButton();

jButton3.setBounds(new Rectangle(356, 105, 46, 42));

jButton3.setText("O");

jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {

System.out.println("O actionPerformed()");

miTabla.oeste();

} });

}

return jButton3;

} /**

* This method initializes jButton4 *

* @return javax.swing.JButton */

private JButton getJButton4() { if (jButton4 == null) {

jButton4 = new JButton();

jButton4.setBounds(new Rectangle(386, 225, 114, 36));

jButton4.setText("INICIO");

jButton4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {

System.out.println("Inicia actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()

miTabla = new Matriz(10,10,5,5);

} });

}

return jButton4;

(7)

} /**

* @param args */

public static void main(String[] args) {

// TODO Auto-generated method stub SwingUtilities.invokeLater(new Runnable() {

public void run() {

IUTabla thisClass = new IUTabla();

thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

thisClass.setVisible(true);

} });

} /**

* This is the default constructor */

public IUTabla() { super();

initialize();

} /**

* This method initializes this *

* @return void */

private void initialize() { this.setSize(551, 372);

this.setContentPane(getJContentPane());

this.setTitle("Ejemplo de uso de Tablas");

(8)

} /**

* This method initializes jContentPane *

* @return javax.swing.JPanel */

private JPanel getJContentPane() { if (jContentPane == null) {

jContentPane = new JPanel();

jContentPane.setLayout(null);

jContentPane.add(getJTable(), null);

jContentPane.add(getJButton(), null);

jContentPane.add(getJButton1(), null);

jContentPane.add(getJButton2(), null);

jContentPane.add(getJButton3(), null);

jContentPane.add(getJButton4(), null);

}

return jContentPane;

}

public void borra(int xx, int yy){

jTable.setValueAt(" ", xx, yy);

}

public void pinta(int xx, int yy){

jTable.setValueAt("@", xx, yy);

}

} // @jve:decl-index=0:visual-constraint="10,10"

Referencias

Documento similar

En tal postura confluye una matiza- ción iluminista que compromete el resultado de la participación ensanchada y de la afirmación de una concepción del poder que tiende a renovar

El  personal  de  mantenimiento  deberá  contar  con  la  titulación,  formación  especializada  y  experiencia  requerida  para  mantener  todas  las 

DS N° 012-2014-TR Registro Único de Información sobre accidentes de trabajo, incidentes peligrosos y enfermedades ocupacionales y modificación del art.110º del Reglamento de la Ley

Antes de tomar ZYNTABAC 150mg Comprimidos de liberación prolongada y para qué

Para completar nuestra clase gamificada tenemos también la opción de crear nuestras propias insignias, tien- da de artículos, cartas, colección de cromos, eventos aleatorios,

En virtud de esta política, que fue conocida como la apertura, numerosos y destacados po- líticos exiliados por el régimen pudieron regresar al país; la prensa disfrutó de una

En el caso LA PIRA se ha tratado fundamentalmente de una serie de Ordenanzas municipales emanadas, bien a raíz de la quiebra y liquida- ción de importantes factorías

Las características del trabajo con grupos que se debería llevar a cabo en los Servicios Sociales de Atención Primaria (SSAP), en términos de variabilidad o estabilidad