KodlaPaylas.com'a Hosgeldiniz.. 54.80.225.32

Çarşamba, 01 Ekim 2014

Anasayfa

Anasayfa'ya dön..kodlapaylas.com »


Sosyal Medyada Paylaş

JAVAFX > JavaFX ile popup menu yapimi...

  1. Merhaba,
    JavaFX ile ilk geliştirdiğim uygulamalardan birisi Multithread bir socket uygulamasıydı. Uygulama birden fazla istemcinin bir sunucuya bağlanıp aynı platform üzerinde haberleşmesini sağlıyor. Klasik bir sohbet uygulamasıdır. Uygulama üzerinde kullanıcı işlemleri için popupmenu örneği mevcut, paylaşayım.

    Uygulamada ContextMenu ListView'ın içinde bulumaktadır. Burada sadece ContextMenu ile ilgili FXML kısmını paylaşıyorum.

    contextMenu.fxml

       <contextMenu>
                <ContextMenu fx:id="cm">
                  <items>
                    <MenuItem mnemonicParsing="false" onAction="#kullaniciSohbetEt"  text="Sohbet Et.."
     fx:id="miKullaniciSohbetEt" />
                    <SeparatorMenuItem mnemonicParsing="false" />
                    <MenuItem mnemonicParsing="false" onAction="#kullaniciOzelKapaAc" text="Özel Kapa/Aç" 
     fx:id="miKullaniciOzelKapaAc" />
                    <SeparatorMenuItem mnemonicParsing="false" />
                    <MenuItem mnemonicParsing="false" onAction="#kullaniciBilgiAl" text="Bilgi Al.."
     fx:id="miKullaniciBilgiAl" />
                    <SeparatorMenuItem mnemonicParsing="false" />
                    <MenuItem mnemonicParsing="false" onAction="#kullaniciOpOl" text="\@Op"
      fx:id="miOperatorKonumu" />
                  </items>
                </ContextMenu>
           </contextMenu>
    

    contextMenu.java

    @FXML
        private MenuItem miKullaniciSohbetEt, miKullaniciOzelKapaAc,
                miKullaniciBilgiAl, miOperatorKonumu;
        @FXML
        private ContextMenu cm;
    
        private Stage stage;
    

    kullaniciBilgiAl metodu, aşağıdaki örnekte tetiklediğim metod

        @FXML
            private void kullaniciBilgiAl(ActionEvent event) {
                try {
                    InetAddress thisIp = InetAddress.getLocalHost();
                    MessageBox.show(stage, "IP : " + thisIp.getHostAddress(), 
    "", MessageBox.ICON_INFORMATION);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
    

    Menüyü tetiklemek için ListView 'ın içinden seçili ğenin lsitener'ı ile dinliyorum ve mouse'un sağ tuşu ise menü açılıyor

    userList.getSelectionModel().selectedItemProperty()
                        .addListener(new ChangeListener<String>() {
                    public void changed(final ObservableValue<? extends String> ov,
                            final String old_val, final String new_val) {
                        userList.addEventHandler(MouseEvent.MOUSE_CLICKED,
                                new EventHandler<MouseEvent>() {
                                    @Override
                                    public void handle(MouseEvent e) {
                                        if (e.getButton() == MouseButton.SECONDARY) {                                   
                                            if (ov.getValue() != null && ov.getValue().equals(userList.
                                                     getSelectionModel().getSelectedItem().toString())) {
                                                cm.show(stage, e.getScreenX(), e.getScreenY());
                                            }
                                        }
                                    }
                                });
    
                    }
                });
    

    alt text
    alt text


    Java/J2EE Developer, FX Enthusiast,Open Sourcer, Newbei Android Developer, Trabzonspor Fan

    Etiketler (Tags)

    Bu yazı defa görüntülenmiştir.

Yorumlar

Uye Yorumlari

Yorum yazabilmeniz için üye olup, giriş yapmalısınız!
Üye olmak yada giriş yapmak için tıklayınız.

Benzer Yazılar