⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.java

📁 jxta实现的p2p聊天
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
                        .addComponent(jLabel5)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(txtMessage, javax.swing.GroupLayout.PREFERRED_SIZE, 481, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(btnSendMessage, javax.swing.GroupLayout.DEFAULT_SIZE, 171, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 371, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jSeparator5, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel5)
                    .addComponent(txtMessage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btnSendMessage))
                .addContainerGap(58, Short.MAX_VALUE))
        );
        jTabbedPane1.addTab("Chat", new javax.swing.ImageIcon(getClass().getResource("/myPackage/myIcons/24x24/MessengerIcon.png")), jPanel5, "Peers Messenger");

        jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder("Listing Peers In Current Group"));
        ListOfPeers.setBorder(javax.swing.BorderFactory.createTitledBorder("Peers Name:"));
        ListOfPeers.setToolTipText("Peers in SaEeD Group");
        jScrollPane5.setViewportView(ListOfPeers);

        jSeparator6.setOrientation(javax.swing.SwingConstants.VERTICAL);

        btnFindPeers.setIcon(new javax.swing.ImageIcon(getClass().getResource("/myPackage/myIcons/24x24/searchIcon2.png")));
        btnFindPeers.setText("Find Peers");
        btnFindPeers.setToolTipText("Start Searching for Peers in SaEeD Group");
        btnFindPeers.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnFindPeersActionPerformed(evt);
            }
        });

        btnStopPeerSearch.setIcon(new javax.swing.ImageIcon(getClass().getResource("/myPackage/myIcons/24x24/cancelIcon.png")));
        btnStopPeerSearch.setText("Stop");
        btnStopPeerSearch.setToolTipText("Stop Searching for Peers");
        btnStopPeerSearch.setEnabled(false);
        btnStopPeerSearch.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnStopPeerSearchActionPerformed(evt);
            }
        });

        jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/myPackage/myIcons/24x24/progress_bar.gif")));

        javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
        jPanel6.setLayout(jPanel6Layout);
        jPanel6Layout.setHorizontalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel6Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, 748, Short.MAX_VALUE)
                    .addGroup(jPanel6Layout.createSequentialGroup()
                        .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 245, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jSeparator6, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(btnStopPeerSearch, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(btnFindPeers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                .addContainerGap())
        );
        jPanel6Layout.setVerticalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel6Layout.createSequentialGroup()
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jSeparator6, javax.swing.GroupLayout.DEFAULT_SIZE, 422, Short.MAX_VALUE)
                    .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 422, Short.MAX_VALUE)
                    .addGroup(jPanel6Layout.createSequentialGroup()
                        .addComponent(btnFindPeers)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 356, Short.MAX_VALUE)
                        .addComponent(btnStopPeerSearch)))
                .addGap(26, 26, 26)
                .addComponent(jLabel6)
                .addContainerGap())
        );
        jTabbedPane1.addTab("List Of Peers", new javax.swing.ImageIcon(getClass().getResource("/myPackage/myIcons/24x24/sysinfoIcon.png")), jPanel6, "Listing Peers in Group");

        jMenu1.setMnemonic('F');
        jMenu1.setText("File");
        MenuItemConnect.setIcon(new javax.swing.ImageIcon(getClass().getResource("/myPackage/myIcons/16x16/connectIcon.png")));
        MenuItemConnect.setMnemonic('C');
        MenuItemConnect.setText("Connect");
        MenuItemConnect.setEnabled(false);
        MenuItemConnect.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                MenuItemConnectActionPerformed(evt);
            }
        });

        jMenu1.add(MenuItemConnect);

        MenuItemDisconnect.setIcon(new javax.swing.ImageIcon(getClass().getResource("/myPackage/myIcons/16x16/disconnectIcon.png")));
        MenuItemDisconnect.setText("Disconnect");
        MenuItemDisconnect.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                MenuItemDisconnectActionPerformed(evt);
            }
        });

        jMenu1.add(MenuItemDisconnect);

        jMenu1.add(jSeparator1);

        MenuItemExit.setIcon(new javax.swing.ImageIcon(getClass().getResource("/myPackage/myIcons/16x16/exitIcon.png")));
        MenuItemExit.setMnemonic('X');
        MenuItemExit.setText("Exit");
        MenuItemExit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                MenuItemExitActionPerformed(evt);
            }
        });

        jMenu1.add(MenuItemExit);

        jMenuBar1.add(jMenu1);

        jMenu2.setMnemonic('V');
        jMenu2.setText("View");
        jMenu4.setText("Window Style");
        ItemWindowStyle.setText("Windows Look");
        ItemWindowStyle.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ItemWindowStyleActionPerformed(evt);
            }
        });

        jMenu4.add(ItemWindowStyle);

        ItemSwingStyle.setText("Swing Look");
        ItemSwingStyle.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ItemSwingStyleActionPerformed(evt);
            }
        });

        jMenu4.add(ItemSwingStyle);

        ItemOthersStyle.setText("Others Look");
        ItemOthersStyle.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ItemOthersStyleActionPerformed(evt);
            }
        });

        jMenu4.add(ItemOthersStyle);

        jMenu2.add(jMenu4);

        jMenuBar1.add(jMenu2);

        jMenu3.setMnemonic('H');
        jMenu3.setText("Help");
        ItemAboutMe.setIcon(new javax.swing.ImageIcon(getClass().getResource("/myPackage/myIcons/16x16/helpIcon.png")));
        ItemAboutMe.setMnemonic('A');
        ItemAboutMe.setText("About Me");
        ItemAboutMe.setToolTipText("About Me!");
        ItemAboutMe.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ItemAboutMeActionPerformed(evt);
            }
        });

        jMenu3.add(ItemAboutMe);

        jMenuBar1.add(jMenu3);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 785, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 545, Short.MAX_VALUE)
                .addContainerGap())
        );
        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void MenuItemConnectActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_MenuItemConnectActionPerformed
// initializing all needed obejcts and reconnect to JXTA network
        MenuItemConnect.setEnabled(false);
       
        //Starting Chat Services, which includes chat input and Output using the same pipe.
        chatIn = new ChatInput(connection.getSaEeDGroup(), this.txtLog, this.txtChatArea);
        chatIn.startListening();
        chatOut = new ChatOutput(connection.getSaEeDGroup(), this.txtLog, this.txtChatArea);
        chatOut.start();
        
        //initializing the PeersListing class to be able to find peers in SaEeDGroup
        peersList = new PeersListing(connection.getSaEeDGroup(), this.txtLog, this.ListOfPeers);
        
        //Start Sharing Services
        File myPath = new File(Path);
        launchSharing = new SaEeDSharing(connection.getSaEeDGroup(), this.txtLog, myPath);
        //Starting the Sharing Thread
        launchSharing.start();
        
    }//GEN-LAST:event_MenuItemConnectActionPerformed

    private void MenuItemDisconnectActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_MenuItemDisconnectActionPerformed
// finalizing all Objects
        
        MenuItemConnect.setEnabled(true);
        launchSharing.stopCMS();
        launchSharing = null;
        chatIn.stopListening();
        chatIn = null;
        chatOut = null;
        peersList = null;
        
    }//GEN-LAST:event_MenuItemDisconnectActionPerformed

    private void btnReloadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnReloadActionPerformed
    //Listing the Files in Shared Directory
         File dir = new File(Path);
         File [] listOfFiles = dir.listFiles();
         String [] titles = {"Type" , "File Name" , "Size Bytes", "Check Sum (CRC-32)"};
         int NumOfFiles =0;
         for(int i=0;i < listOfFiles.length;i++){
             if(listOfFiles[i].isFile()){
                 NumOfFiles++;
             }
         }
         
         DefaultTableModel TableModel1 = new DefaultTableModel(titles,NumOfFiles){
             public boolean isCellEditable(int rowIndex, int mColIndex) {
                return false;
            }
         };
         mySharedTable.setModel(TableModel1);
         
        //This table render is used to show file type icons in Table 
        TableCellRenderer iconHeaderRenderer = new DefaultTableCellRenderer() {
        public Component getTableCellRendererComponent(JTable table, Object value,
                boolean isSelected, boolean hasFocus, int row, int column) {
            // Inherit the colors and font from the header component
            if (table != null) {
                JTableHeader header = table.getTableHeader();
                if (header != null) {
                    setForeground(header.getForeground());
                    setBackground(header.getBackground());
                    setFont(header.getFont());
                }
            }    
            if (value !=null) {
                setIcon((ImageIcon)value);
            } else {
                setText((value == null) ? "" : value.toString());
                setIcon(null);
            }
            setBorder(UIManager.getBorder("TableHeader.cellBorder"));
            setHorizontalAlignment(JLabel.CENTER);
            return this;
        }
    };
         
         //Setting new Table render to our table
         mySharedTable.getColumnModel().getColumn(0).setCellRenderer(iconHeaderRenderer);
         
         int j=0;
         for(int i=0; i< listOfFiles.length;i++){ //Showing different icons for different file type
             if(listOfFiles[i].isFile())
             {
                 if(listOfFiles[i].getName().endsWith(".mp3") || listOfFiles[i].getName().endsWith(".MP3"))
                 {
                     mySharedTable.setValueAt(mp3Icon,j,0);                    
                     
                 }else if(listOfFiles[i].getName().endsWith(".avi") || listOfFiles[i].getName().endsWith(".mpg") ||
                         listOfFiles[i].getName().endsWith(".mpeg") || listOfFiles[i].getName().endsWith(".wmv"))
                 {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -