nein den der MouseListener reagiert auf der einen JTable nur nicht auf der anderen obwohl ich den Mouselistener in beiden fehlen mit this hinzugefügt habe reagiert er nur auf die eine JTable
package viewing;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.ScrollPane;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListModel;
import javax.swing.ListSelectionModel;
import javax.swing.table.TableColumn;
import funk.Datenbank;
import modeling.Datensatz;
import modeling.Filter;
import modeling.MyTableModel;
public class DeckBuilder extends JFrame implements ActionListener,MouseListener{
private Datenbank db = new Datenbank();
private ArrayList<Datensatz>alleKarten=new ArrayList<Datensatz>();
private ArrayList<Datensatz>anzeigen=new ArrayList<Datensatz>();
private ArrayList<Datensatz>deck=new ArrayList<Datensatz>();
private JButton bfilterok;
private JCheckBox mana0;private JCheckBox mana1;private JCheckBox mana2;
private JCheckBox mana3;private JCheckBox mana4;private JCheckBox mana5;
private JCheckBox mana6;private JCheckBox mana7;private JCheckBox mana8;
private JCheckBox mana9;private JCheckBox mana10;
private JTextField tsuche;
private String[]sHelden=new String[]{null,"Druide","Hexenmeister","Jäger","Krieger","Magier","Paladin","Priester","Schamane","Schurke"};
private JComboBox<String>cHeldenBox=new JComboBox<String>(sHelden);
private String[]sRassen=new String[]{null,"Drache","Dämon","Murloc","Pirat","Totem","Wildtier"};
private JComboBox<String>cRasseBox=new JComboBox<String>(sRassen);
private String[][]daten;
private String[]title=new String[]{"Mana","Kartenname","Kartentext"};
private JTable table;
private JScrollPane scroll;
private String[][]daten2;
private JTable table2;
private JScrollPane scroll2;
public DeckBuilder(){
alleKarten=db.auslesen();
for(Datensatz ds : alleKarten){
System.out.println(ds.getNAME());
}
anzeigen=alleKarten;
System.out.println(alleKarten.size());
setSize(1000,400);
setUndecorated(true);
setLocation(100,300);
setLayout(null);
getContentPane().setBackground(Color.WHITE);
((JComponent)getContentPane()).setBorder(BorderFactory.createMatteBorder( 3, 3, 3, 3, Color.blue ));
JPanel pfilter = new JPanel();
pfilter.setLayout(new GridLayout(20,1));
pfilter.setBounds(3,3,200,394);
pfilter.setBackground(Color.WHITE);
pfilter.add(cHeldenBox);
pfilter.add(cRasseBox);
bfilterok=new JButton("Filter anwenden");
bfilterok.addActionListener(this);
pfilter.add(bfilterok);
mana0=new JCheckBox("0 Mana"); mana0.setBackground(Color.WHITE); pfilter.add(mana0);
mana1=new JCheckBox("1 Mana"); mana1.setBackground(Color.WHITE); pfilter.add(mana1);
mana2=new JCheckBox("2 Mana"); mana2.setBackground(Color.WHITE); pfilter.add(mana2);
mana3=new JCheckBox("3 Mana"); mana3.setBackground(Color.WHITE); pfilter.add(mana3);
mana4=new JCheckBox("4 Mana"); mana4.setBackground(Color.WHITE); pfilter.add(mana4);
mana5=new JCheckBox("5 Mana"); mana5.setBackground(Color.WHITE); pfilter.add(mana5);
mana6=new JCheckBox("6 Mana"); mana6.setBackground(Color.WHITE); pfilter.add(mana6);
mana7=new JCheckBox("7 Mana"); mana7.setBackground(Color.WHITE); pfilter.add(mana7);
mana8=new JCheckBox("8 Mana"); mana8.setBackground(Color.WHITE); pfilter.add(mana8);
mana9=new JCheckBox("9 Mana"); mana9.setBackground(Color.WHITE); pfilter.add(mana9);
mana10=new JCheckBox("10+ Mana"); mana10.setBackground(Color.WHITE); pfilter.add(mana10);
mana0.setSelected(true);
mana1.setSelected(true);
mana2.setSelected(true);
mana3.setSelected(true);
mana4.setSelected(true);
mana5.setSelected(true);
mana6.setSelected(true);
mana7.setSelected(true);
mana8.setSelected(true);
mana9.setSelected(true);
mana10.setSelected(true);
tsuche=new JTextField();
pfilter.add(tsuche);
add(pfilter);
addTableData(alleKarten); addDeckData(deck);
table=new JTable(new MyTableModel(daten,title)); table2=new JTable(new MyTableModel(daten2,title));
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); table2.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
TableColumn col1 = table.getColumnModel().getColumn(0); TableColumn col12 = table2.getColumnModel().getColumn(0);
col1.setPreferredWidth(20); col12.setPreferredWidth(20);
TableColumn col2 = table.getColumnModel().getColumn(1); TableColumn col22 = table2.getColumnModel().getColumn(1);
col2.setPreferredWidth(150); col22.setPreferredWidth(150);
TableColumn col3 = table.getColumnModel().getColumn(2); TableColumn col32 = table2.getColumnModel().getColumn(2);
col3.setPreferredWidth(224); col32.setPreferredWidth(224);
table.addMouseListener(this); table2.addMouseListener(this);
scroll=new JScrollPane(table); scroll2=new JScrollPane(table2);
scroll.setBounds(203,3,396,394); scroll2.setBounds(596,3,394,394);
add(scroll); add(scroll2);
setVisible(true);
}
public void addTableData(ArrayList<Datensatz>x){
daten=new String[x.size()][3];
for (int i = 0; i < x.size(); i++) {
System.out.print(".");
daten**[0]=""+x.get(i).getMANA();
daten**[1]=x.get(i).getNAME();
daten**[2]=x.get(i).getKARTENTEXT();
}
}
public void addDeckData(ArrayList<Datensatz>x){
daten2=new String[x.size()][3];
for (int i = 0; i < x.size(); i++) {
System.out.print(".");
daten2**[0]=""+x.get(i).getMANA();
daten2**[1]=x.get(i).getNAME();
daten2**[2]=x.get(i).getKARTENTEXT();
}
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==bfilterok){
String held="";
if(cHeldenBox.getSelectedItem()==null){
held ="";
}
else{
held = cHeldenBox.getSelectedItem().toString();
}
String rasse = "";
if(cRasseBox.getSelectedItem()==null){
}
else{
rasse = cRasseBox.getSelectedItem().toString();
}
String suche = tsuche.getText();
ArrayList<Integer>mana=new ArrayList<Integer>();
if(mana0.isSelected()){
mana.add(0);
}
if(mana1.isSelected()){
mana.add(1);
}
if(mana2.isSelected()){
mana.add(2);
}
if(mana3.isSelected()){
mana.add(3);
}
if(mana4.isSelected()){
mana.add(4);
}
if(mana5.isSelected()){
mana.add(5);
}
if(mana6.isSelected()){
mana.add(6);
}
if(mana7.isSelected()){
mana.add(7);
}
if(mana8.isSelected()){
mana.add(8);
}
if(mana9.isSelected()){
mana.add(9);
}
if(mana10.isSelected()){
mana.add(10);
mana.add(12);
mana.add(20);
}
for (Integer s : mana) {
System.out.println(""+s);
}
anzeigen=new Filter(alleKarten, held, mana, rasse, suche).getFiltered();
System.out.println(anzeigen.size());
for (Datensatz x : anzeigen) {
System.out.println("===================");
System.out.println(x.getNAME());
System.out.println("===================");
}
remove(scroll);
addTableData(anzeigen);
table=new JTable(new MyTableModel(daten,title));
table.setBounds(203,3,200,394);
scroll=new JScrollPane(table);
scroll.setBounds(203,3,400,394);
add(scroll);
cHeldenBox.setSelectedItem(null);
cRasseBox.setSelectedItem(null);
tsuche.setText(null);
mana0.setSelected(true);
mana1.setSelected(true);
mana2.setSelected(true);
mana3.setSelected(true);
mana4.setSelected(true);
mana5.setSelected(true);
mana6.setSelected(true);
mana7.setSelected(true);
mana8.setSelected(true);
mana9.setSelected(true);
mana10.setSelected(true);
validate();
repaint();
}
}
@Override
public void mouseClicked(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
@Override
public void mousePressed(MouseEvent e) {
System.out.println(e);
if(e.getSource()==table){
int count = e.getClickCount();
int row = table.rowAtPoint(e.getPoint());
System.out.println(anzeigen.get(row)+" "+count);
deck.add(anzeigen.get(row));
System.out.println(deck.size());
remove(scroll2);
addDeckData(deck);
table2=new JTable(new MyTableModel(daten2,title));
scroll2=new JScrollPane(table2);
scroll2.setBounds(600,3,400,394);
add(scroll2);
validate();
repaint();
}
else if(e.getSource()==table2){
int row = table2.rowAtPoint(e.getPoint());
System.out.println("Enferne "+deck.get(row));
deck.remove(row);
System.out.println(deck.size());
remove(scroll2);
addDeckData(deck);
table2=new JTable(new MyTableModel(daten2,title));
scroll2=new JScrollPane(table2);
scroll2.setBounds(600,3,400,394);
add(scroll2);
validate();
repaint();
}
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
}