JTable table = new JTable();
table.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent evt) {
tableMousePressed(evt);
}
});
MousePressed metodumuzu yazdıkdan sonra sağ tıklama ile bir popup menü oluşturmak için sağ tuşuna basılıp basmadığını kontrol ediyoruz.Koyu olarak yazdığım kısım sağ tuş ile tıklanıp tıklanılmadığını kontol ediyor.
private void tableMousePressed(java.awt.event.MouseEvent evt) {
if ((evt.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK) {
}
}
Sağ tuşa tıkladığını anladığımızda tıklanılan yerde bir popup menü oluşturmak için.Aşağıdaki yöntemi kullanıyoruz.
private void tableMousePressed(java.awt.event.MouseEvent evt) {
if ((evt.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK) {
JPopupMenu jPopupMenu1 = new JPopupMenu();
jPopupMenu1.setLocation(evt.getPoint());
jPopupMenu1.setInvoker(table);
}
}
Popup Menümüze seçenekler eklemek ve seçeneklerimizi belirli bir action göndermek için ise frame (yada panel) sınıfımızın içinde yeni bir sınıf oluşturuyoruz.
public class DesktopApplication1View extends FrameView {
public class PopupActionListener implements ActionListener {
public void actionPerformed(ActionEvent actionEvent) {
}
}
}
Bu işlemi yaptıktan sonra ise pop-up menümüze seçenekleri ekliyoruz.
private void tableMousePressed(java.awt.event.MouseEvent evt) {
if ((evt.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK) {
JPopupMenu jPopupMenu1 = new JPopupMenu();
jPopupMenu1.setLocation(evt.getPoint());
jPopupMenu1.setInvoker(table);
ActionListener ae = new PopupActionListener();
JMenuItem copyItem = new JMenuItem("Copy");
copyItem.addActionListener(ae);
jPopupMenu1.add(copyItem);
JMenuItem cut = new JMenuItem("Cut");
cut.addActionListener(ae);
jPopupMenu1.add(cut);
}
}
Menu özelliklerini ekledikden sonra ise verdiğimiz isimlere göre PopUpActionListener a göre actionlar ekliyoruz.
public class DesktopApplication1View extends FrameView {
public class PopupActionListener implements ActionListener {
public void actionPerformed(ActionEvent actionEvent) {
if (actionEvent.getActionCommand().equals("Copy")) {
//action
}else if(actionEvent.getActionCommand().equals("Cut")) {
//action
}
}
}
}
Ve bu şekilde istediğimiz PopUpMenuye ulaşmış oluyoruz.
Hiç yorum yok:
Yorum Gönder