Prosze o pomoc, napisałem mały programik aby nauczyć się dodawać menu do tabelki (PopupMenu ). Wszystko działa dobrze w samym oknie. Jednak jak dołożę tabele zaczynają się problemy.
Co chce uzyskac?, chciałbym aby przy kliknieciu na tebeli, podswitlał sie jeden wiersz (to juz mam), i wyświetlało sie menu do Popup zwiazane z ta tabela. na razie testowo chce aby to menu zadziałało ;/
package aplikacja;
import java.awt.Frame;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.Popup;
import javax.swing.table.AbstractTableModel;
class Aplikacja extends Frame implements ActionListener, MouseListener
{
PopupMenu menu;
JFrame frame = new JFrame("Stany");
JPanel panel = new JPanel();
String[] nag={"Stany:"};
JTable table = new JTable();
JScrollPane js = new JScrollPane();
public Aplikacja()
{
menu= new PopupMenu();
menu.add(new MenuItem("Pozycja 1"));
menu.getItem(0).setActionCommand("posision1");
menu.add(new MenuItem("Pozycja 2"));
menu.getItem(1).setActionCommand("exit");
menu.addActionListener(this);
frame.add(menu);
frame.addMouseListener(this);
//---------------------------------------------------------------------------
String[][] dane=new String[5][1];
for (int i=0;i<5;i++)
for (int j=0;j<1;j++)
{
dane[i][0]="test";
}
//---------------------------------------------------------------------------
ModelTabelki model = new ModelTabelki( dane, nag );
table = new JTable(model);
js = new JScrollPane( table );
js.setBounds(10, 10, 100, 100); //szerokosc, długość
panel.add(js);
frame.add(panel);
frame.setSize(500,330);
panel.setLayout(null); //Wyłancza automatyczne ustawianei komponentów
frame.setVisible(true);
frame.setLocationRelativeTo(null);
}
public static void main(String[] args) {new Aplikacja();}
public void mousePressed(MouseEvent e) {
if(e.getButton()==MouseEvent.BUTTON3)
menu.show(this, e.getX(), e.getY());
}
public void actionPerformed(ActionEvent e) {
String command=e.getActionCommand();
if(command.equals("exit"))
dispose();
}
public void mouseClicked(MouseEvent e) { }
public void mouseReleased(MouseEvent e) { }
public void mouseEntered(MouseEvent e) { }
public void mouseExited(MouseEvent e) { }
//--------------------------------------------------------------------------
class ModelTabelki extends AbstractTableModel
{
Object[][] data;
Object[] naglowek;
public ModelTabelki(Object[][] dat, Object[] nag)
{
data = dat;
naglowek = nag;
}
public int getColumnCount()
{
if(naglowek!=null)
return naglowek.length;
return 0;
}
public int getRowCount()
{
if(data!=null)
return data.length;
return 0;
}
public String getColumnName(int col)
{
return naglowek[col].toString();
}
public Object getValueAt(int row, int col)
{
return data[row][col];
}
}
}