• 27-02-2024, 12:08:13
    #1
    arkadaşlar merhaba başlıkta sorunumu anlatamadım büyük ihtimalle. bir proje üzerinde çalışıyorum ve bu projemde bir tablo var. bu tabloda bir satıra çift tıklandığında farklı bir panel göstermeye çalışıyorum ancak bütün yolları denemem rağmen bir türlü başaramadım. java programlamada bilgisi olan arkadaşlardan yardım rica ediyorum.
  • 27-02-2024, 12:09:54
    #2
    Jtable 'ın modelini kullanarak etkileşime geçiyorsunuz değil mi?
    çift tıklayarak işlem yaptırmak yeni bir jframe açmak çokta zor değil.

     
            table.addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    if (e.getClickCount() == 2) { // Çift tıklama kontrolü
                        JTable target = (JTable)e.getSource();
                        int row = target.getSelectedRow(); // Seçili satırı al
    
                        // Yeni JFrame'i oluştur ve göster
                        JFrame detailFrame = new JFrame("Detay Penceresi");
                        detailFrame.setSize(300, 200);
                        JLabel label = new JLabel("Seçili Satır: " + (row + 1));
                        detailFrame.add(label);
                        detailFrame.setVisible(true);
                    }
                }
            });
    2-3 yöntem ile bu işlemi yapabilirsin. en basiti bu sanırım
  • 27-02-2024, 12:27:28
    #3
    Ben bir JFrame içindeki bölüme farklı bir panel import etmeyi deniyorum aslında ancak kodlarda da gördüğünüz gibi console yazdırma işleminde sıkıntı yok. bütün satır verileri yazdırılıyor doğru şekilde ancak ilgili panel gösterilmiyor bir türlü.

    table.addMouseListener(new MouseAdapter() {
                  @Override
                  public void mouseClicked(MouseEvent e) {
                    if (e.getClickCount() == 2) {
                       
                        int selectedRow = table.getSelectedRow();
                        if (selectedRow != -1) {
                            int customerId = Integer.parseInt(table.getValueAt(selectedRow, 0).toString());
                            String customerName = table.getValueAt(selectedRow, 1).toString();
                            String customerSurname = table.getValueAt(selectedRow, 2).toString();
                            String customerCity = table.getValueAt(selectedRow, 3).toString();
                            String customerPhone = table.getValueAt(selectedRow, 4).toString();
                            String customerMail = table.getValueAt(selectedRow, 5).toString();
    
                            customerUpdate = new CustomerUpdate(customerId, customerName, customerSurname, customerCity, customerPhone, customerMail);
                            customerUpdate.setVisible(true);
                            System.out.println("id : "+customerId+" name : "+customerName+" surname : "+customerSurname+" city : "+customerCity+" phone : "+customerPhone+" mail : "+customerMail);
                        }
                      }
                    }
                });
  • 27-02-2024, 12:34:34
    #4
    paneli içeren JFrame ' i pack() metodunu çağırmayı deneyin.
    SwingUtilities.invokeLater() fonksiyonunu kullanarak anlık yani currentthread üzerinde işlemleri yapmayı deneyin.
    layoutmanager falan varsa bunların görünürlülüklerini kontrrol edin aklıma gelenler bunlar.
    IDE ne kullanıyorsunuz bu arada ?
  • 27-02-2024, 12:37:28
    #5
    aslında bu işlemi şu uygulamada yapmıştım : https://www.r10.net/android-ios-uygu...e-manager.html
    uzun zamandır java ile çalışmıyorum yanlış yönlendirmekde istemiyorum.
  • 29-02-2024, 11:53:45
    #6
    JOptionPane.showMessageDialog(null, customerUpdate ,"Müşteri Bilgileri",JOptionPane.PLAIN_MESSAGE);
    bunu deneyin