y por que no pruebas con la opcion mas obvia por que no buscas setmodal esforsarse no hace daño
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menúpackage com.elhacker.ejemplo;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
public class ApliacionMichi {
public static void main(String arg[]) {
JFrame jFrame = new JFrame();
jFrame.setLayout(new BorderLayout());
jFrame.add(new PanelPrincipal(), BorderLayout.CENTER);
jFrame.setSize(new Dimension(400, 400));
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setLocationRelativeTo(null);
jFrame.setVisible(true);
}
}
package com.elhacker.ejemplo;
import javax.swing.JButton;
public class BotonCeldaMichi extends JButton {
private static final long serialVersionUID = 1L;
private int fila;
private int columna;
public BotonCeldaMichi(int fila, int columna) {
super();
this.fila = fila;
this.columna = columna;
}
public int getFila() {
return fila;
}
public int getColumna() {
return columna;
}
}
package com.elhacker.ejemplo;
public interface ObservadorDeVictoria {
public void cuandoGano(TableroMichi tableroMichi);
}
package com.elhacker.ejemplo;
public enum OpcionMarca {
X("x"), O("o");
private String nombre = "";
private OpcionMarca(String nombre) {
this.nombre = nombre;
}
public OpcionMarca getOpcionOpuesta() {
if (this == OpcionMarca.O) {
return OpcionMarca.X;
} else {
return OpcionMarca.O;
}
}
@Override
public String toString() {
return nombre;
}
}
package com.elhacker.ejemplo;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class PanTablero extends JPanel {
private static final long serialVersionUID = 1L;
private final GridLayout gridLayout = new GridLayout(3, 3);
private final TableroMichi tableroMichi;
public PanTablero() {
this(new TableroMichi());
}
public PanTablero(TableroMichi tableroMichi) {
super();
this.tableroMichi = tableroMichi;
inicialisa();
}
public void inicialisa() {
setLayout(gridLayout);
agregaBotonesYEventos();
agregaEventosMichi();
}
private void agregaEventosMichi() {
tableroMichi.agregarObserVador(new ObservadorDeVictoria() {
@Override
public void cuandoGano(TableroMichi tableroMichi) {
ganaste();
}
});
}
private void ganaste() {
JOptionPane.showMessageDialog(null, new Label("felicidades"));
}
private void agregaBotonesYEventos() {
for (int fila = 1; fila <= 3; fila++) {
for (int columna = 1; columna <= 3; columna++) {
BotonCeldaMichi botonCeldaMichi = new BotonCeldaMichi(fila,
columna);
agreagEventos(botonCeldaMichi);
add(botonCeldaMichi);
}
}
}
private void agreagEventos(BotonCeldaMichi botonCeldaMichi) {
botonCeldaMichi.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
presionoAlgunBoton(actionEvent);
}
});
}
private void presionoAlgunBoton(ActionEvent actionEvent) {
BotonCeldaMichi botonCeldaMichi = (BotonCeldaMichi) actionEvent
.getSource();
ponerMarcaAlBoton(botonCeldaMichi);
tableroMichi.marcar(botonCeldaMichi.getFila(),
botonCeldaMichi.getColumna());
}
private void ponerMarcaAlBoton(BotonCeldaMichi botonCeldaMichi) {
botonCeldaMichi.setText(tableroMichi.getUltimaOpcion().toString());
}
}
package com.elhacker.ejemplo;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class TableroMichi {
private OpcionMarca ultimaOpcion;
private final TableModel tabla = new DefaultTableModel(3, 3);
private ObservadorDeVictoria observador;
public TableroMichi() {
this(OpcionMarca.X);
}
public TableroMichi(OpcionMarca primeraOpcionMarca) {
ultimaOpcion = primeraOpcionMarca.getOpcionOpuesta();
}
public void marcar(int fila, int columa) {
//no te la dejo tan facil :-)
}
public void agregarObserVador(final ObservadorDeVictoria observador) {
//no te la dejo tan facil :-)
}
public OpcionMarca getMarcaEnPocision(int fila, int columna) {
//no te la dejo tan facil :-)
return null;
}
public OpcionMarca getUltimaOpcion() {
return ultimaOpcion;
}
public boolean isVicotoria() {
return ganoEnRecta() || ganoEnDiagonal();
}
public boolean ganoEnRecta() {
//no te la dejo tan facil :-)
return false;
}
public boolean ganoEnFila(int fila) {
//no te la dejo tan facil :-)
return false;
}
public boolean ganoEnColumna(int columna) {
//no te la dejo tan facil :-) return false;
}
public boolean ganoEnDiagonal() {
return diagonalDeFilasYColumnasIguales()
|| diagonalDeFilasYColumnasDiferentes();
}
public boolean diagonalDeFilasYColumnasIguales() {
//no te la dejo tan facil :-)
return false;
}
public boolean diagonalDeFilasYColumnasDiferentes() {
return false;
}
private boolean sonMismasMarcas(OpcionMarca marca, OpcionMarca otraMarca) {
//no te la dejo tan facil :-)
return false;
}
public void limpiar() {
//no te la dejo tan facil :-)
}
}
[code]
solo tienes que hacer pruebas unitarias y hacer que todos los metodos pasen correctamente luego todo va a funcionar como por arte de magia
[/code]
Citary ese objeto creado de la clase B tiene que llamar a el metodo numero¿Como lo hago?Respuesta corta
La clase A hereda de otra clase diferente, como en java no hay herencia múltiple la clase B no puede heredar a la A
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class EscritorAgenda {
private final BufferedWriter bufferedWriter;
public static void main(String arg[]) {
EscritorAgenda escritorAgenda = new EscritorAgenda(new File(
"agenda.txt"));
escritorAgenda.escribir(new Agenda("nombre", "apellido", 123456,
"email"));
escritorAgenda.close();
}
public EscritorAgenda(File file) {
try {
bufferedWriter = new BufferedWriter(new FileWriter(file));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public void escribir(Agenda agenda) {
try {
bufferedWriter.append(agenda.toString());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public void close() {
try {
if (bufferedWriter != null) {
bufferedWriter.close();
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
package org.kodejava.example.swing;
import javax.swing.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class MouseClickEventDemo extends JFrame {
private JLabel label = new JLabel();
public MouseClickEventDemo() {
initComponents();
}
private void initComponents() {
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
textArea.setText("Click Me!");
textArea.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
presionoBoton(e)
}
});
getContentPane().add(textArea);
}
public void presionoBoton(MouseEvent e) {
//as lo que quieras con el label
}
}