是不是netbeans的初始化init()代码中有什么初始化,每次事件相应后,又回到老状态,老位置?

解决方案 »

  1.   

    init?是JApplet程序?楼主应该把代码贴出来
      

  2.   

    /*
     * Test1View.java
     */package test1;import java.awt.BasicStroke;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.Point;
    import org.jdesktop.application.Action;
    import org.jdesktop.application.ResourceMap;
    import org.jdesktop.application.SingleFrameApplication;
    import org.jdesktop.application.FrameView;
    import org.jdesktop.application.TaskMonitor;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Vector;
    import javax.swing.Timer;
    import javax.swing.Icon;
    import javax.swing.JDialog;
    import javax.swing.JFrame;/**
     * The application's main frame.
     */
    public class Test1View extends FrameView {
        private int click1 = 0;
        private int x1;
        private int y1;
        private Point jd1p = new Point();
        private Point jl1p = new Point();
        private Vector<Point> endPoints1 = new Vector<Point>();
        private Vector<Point> endPoints2 = new Vector<Point>();
        private int endx;
        private int endy;    public Test1View(SingleFrameApplication app) {
           super(app);        initComponents();
            jLabel1.setVisible(false);
            jLabel2.setVisible(false);        // status bar initialization - message timeout, idle icon and busy animation, etc
            ResourceMap resourceMap = getResourceMap();
            int messageTimeout = resourceMap.getInteger("StatusBar.messageTimeout");
            messageTimer = new Timer(messageTimeout, new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    statusMessageLabel.setText("");
                }
            });
            messageTimer.setRepeats(false);
            int busyAnimationRate = resourceMap.getInteger("StatusBar.busyAnimationRate");
            for (int i = 0; i < busyIcons.length; i++) {
                busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i + "]");
            }
            busyIconTimer = new Timer(busyAnimationRate, new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    busyIconIndex = (busyIconIndex + 1) % busyIcons.length;
                    statusAnimationLabel.setIcon(busyIcons[busyIconIndex]);
                }
            });
            idleIcon = resourceMap.getIcon("StatusBar.idleIcon");
            statusAnimationLabel.setIcon(idleIcon);
            progressBar.setVisible(false);        // connecting action tasks to status bar via TaskMonitor
            TaskMonitor taskMonitor = new TaskMonitor(getApplication().getContext());
            taskMonitor.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
                public void propertyChange(java.beans.PropertyChangeEvent evt) {
                    String propertyName = evt.getPropertyName();
                    if ("started".equals(propertyName)) {
                        if (!busyIconTimer.isRunning()) {
                            statusAnimationLabel.setIcon(busyIcons[0]);
                            busyIconIndex = 0;
                            busyIconTimer.start();
                        }
                        progressBar.setVisible(true);
                        progressBar.setIndeterminate(true);
                    } else if ("done".equals(propertyName)) {
                        busyIconTimer.stop();
                        statusAnimationLabel.setIcon(idleIcon);
                        progressBar.setVisible(false);
                        progressBar.setValue(0);
                    } else if ("message".equals(propertyName)) {
                        String text = (String)(evt.getNewValue());
                        statusMessageLabel.setText((text == null) ? "" : text);
                        messageTimer.restart();
                    } else if ("progress".equals(propertyName)) {
                        int value = (Integer)(evt.getNewValue());
                        progressBar.setVisible(true);
                        progressBar.setIndeterminate(false);
                        progressBar.setValue(value);
                    }
                }
            });
        }
      

  3.   

       @Action
        public void showAboutBox() {
            if (aboutBox == null) {
                JFrame mainFrame = Test1App.getApplication().getMainFrame();
                aboutBox = new Test1AboutBox(mainFrame);
                aboutBox.setLocationRelativeTo(mainFrame);
            }
            Test1App.getApplication().show(aboutBox);
        }    /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        @SuppressWarnings("unchecked")
        // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
        private void initComponents() {        mainPanel = new javax.swing.JPanel();
            jLabel1 = new javax.swing.JLabel();
            jLabel2 = new javax.swing.JLabel();
            jButton1 = new javax.swing.JButton();
            menuBar = new javax.swing.JMenuBar();
            javax.swing.JMenu fileMenu = new javax.swing.JMenu();
            jMenuItem1 = new javax.swing.JMenuItem();
            javax.swing.JMenuItem exitMenuItem = new javax.swing.JMenuItem();
            javax.swing.JMenu helpMenu = new javax.swing.JMenu();
            javax.swing.JMenuItem aboutMenuItem = new javax.swing.JMenuItem();
            statusPanel = new javax.swing.JPanel();
            javax.swing.JSeparator statusPanelSeparator = new javax.swing.JSeparator();
            statusMessageLabel = new javax.swing.JLabel();
            statusAnimationLabel = new javax.swing.JLabel();
            progressBar = new javax.swing.JProgressBar();        mainPanel.setName("mainPanel"); // NOI18N        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(test1.Test1App.class).getContext().getResourceMap(Test1View.class);
            jLabel1.setBackground(resourceMap.getColor("jLabel1.background")); // NOI18N
            jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N
            jLabel1.setName("jLabel1"); // NOI18N
            jLabel1.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mousePressed(java.awt.event.MouseEvent evt) {
                    jLabel1MousePressed(evt);
                }
            });
            jLabel1.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
                public void mouseDragged(java.awt.event.MouseEvent evt) {
                    jLabel1MouseDragged(evt);
                }
            });        jLabel2.setText(resourceMap.getString("jLabel2.text")); // NOI18N
            jLabel2.setName("jLabel2"); // NOI18N        jButton1.setText(resourceMap.getString("jButton1.text")); // NOI18N
            jButton1.setName("jButton1"); // NOI18N        javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
            mainPanel.setLayout(mainPanelLayout);
            mainPanelLayout.setHorizontalGroup(
                mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(mainPanelLayout.createSequentialGroup()
                    .addGap(107, 107, 107)
                    .addComponent(jButton1)
                    .addContainerGap(298, Short.MAX_VALUE))
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, mainPanelLayout.createSequentialGroup()
                    .addContainerGap(360, Short.MAX_VALUE)
                    .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jLabel2)
                        .addComponent(jLabel1))
                    .addGap(84, 84, 84))
            );
            mainPanelLayout.setVerticalGroup(
                mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(mainPanelLayout.createSequentialGroup()
                    .addGap(75, 75, 75)
                    .addComponent(jLabel1)
                    .addGap(83, 83, 83)
                    .addComponent(jLabel2)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 82, Short.MAX_VALUE)
                    .addComponent(jButton1)
                    .addGap(57, 57, 57))
            );        menuBar.setName("menuBar"); // NOI18N        fileMenu.setText(resourceMap.getString("fileMenu.text")); // NOI18N
            fileMenu.setName("fileMenu"); // NOI18N        jMenuItem1.setText(resourceMap.getString("jMenuItem1.text")); // NOI18N
            jMenuItem1.setName("jMenuItem1"); // NOI18N
            jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    jMenuItem1ActionPerformed(evt);
                }
            });
            fileMenu.add(jMenuItem1);        javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(test1.Test1App.class).getContext().getActionMap(Test1View.class, this);
            exitMenuItem.setAction(actionMap.get("quit")); // NOI18N
            exitMenuItem.setName("exitMenuItem"); // NOI18N
            fileMenu.add(exitMenuItem);        menuBar.add(fileMenu);        helpMenu.setText(resourceMap.getString("helpMenu.text")); // NOI18N
            helpMenu.setName("helpMenu"); // NOI18N        aboutMenuItem.setAction(actionMap.get("showAboutBox")); // NOI18N
            aboutMenuItem.setName("aboutMenuItem"); // NOI18N
            helpMenu.add(aboutMenuItem);        menuBar.add(helpMenu);        statusPanel.setName("statusPanel"); // NOI18N        statusPanelSeparator.setName("statusPanelSeparator"); // NOI18N        statusMessageLabel.setName("statusMessageLabel"); // NOI18N        statusAnimationLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
            statusAnimationLabel.setName("statusAnimationLabel"); // NOI18N        progressBar.setName("progressBar"); // NOI18N        javax.swing.GroupLayout statusPanelLayout = new javax.swing.GroupLayout(statusPanel);
            statusPanel.setLayout(statusPanelLayout);
            statusPanelLayout.setHorizontalGroup(
                statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(statusPanelSeparator, javax.swing.GroupLayout.DEFAULT_SIZE, 486, Short.MAX_VALUE)
                .addGroup(statusPanelLayout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(statusMessageLabel)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 316, Short.MAX_VALUE)
                    .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(statusAnimationLabel)
                    .addContainerGap())
            );
            statusPanelLayout.setVerticalGroup(
                statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(statusPanelLayout.createSequentialGroup()
                    .addComponent(statusPanelSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(statusMessageLabel)
                        .addComponent(statusAnimationLabel)
                        .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGap(3, 3, 3))
            );        setComponent(mainPanel);
            setMenuBar(menuBar);
            setStatusBar(statusPanel);
        }// </editor-fold>           
      

  4.   

        private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
            // TODO add your handling code here:
           if(click1 == 0){
                 jLabel1.setVisible(true);
                 System.out.println("jLable 1 ");
                 
            }else{     
                      System.out.println("jLable 1' ");
                      jLabel1.setLocation(50,50);
                      jLabel2.setVisible(true);
                      System.out.println("jLable 2 ");
                 }
                                                
            click1++;      
        }                                              private void jLabel1MouseDragged(java.awt.event.MouseEvent evt) {                                     
            // TODO add your handling code here:
             endx = jLabel1.getX() + evt.getX() - x1;
             endy = jLabel1.getY() + evt.getY() - y1;
             jd1p.x = endx;
             jd1p.y = endy;
             jLabel1.setLocation(jd1p);        
             jLabelMouseDragged(jl1p,jd1p);       
        }                                        private void jLabel1MousePressed(java.awt.event.MouseEvent evt) {                                     
            // TODO add your handling code here:
              x1 = evt.getX();
              y1 = evt.getY();  
        }                                        // Variables declaration - do not modify                     
        private javax.swing.JButton jButton1;
        private javax.swing.JLabel jLabel1;
        private javax.swing.JLabel jLabel2;
        private javax.swing.JMenuItem jMenuItem1;
        private javax.swing.JPanel mainPanel;
        private javax.swing.JMenuBar menuBar;
        private javax.swing.JProgressBar progressBar;
        private javax.swing.JLabel statusAnimationLabel;
        private javax.swing.JLabel statusMessageLabel;
        private javax.swing.JPanel statusPanel;
        // End of variables declaration                       private final Timer messageTimer;
        private final Timer busyIconTimer;
        private final Icon idleIcon;
        private final Icon[] busyIcons = new Icon[15];
        private int busyIconIndex = 0;    private JDialog aboutBox;    public void jLabelMouseDragged(Point jlp,Point jdp) {                                     
            // TODO add your handling code here:  
             if(endPoints2.contains(jlp) == true && endPoints1.get(endPoints2.indexOf(jlp)) != null){                
                      try{
                          int j = endPoints2.indexOf(jlp);
                          Graphics g=mainPanel.getGraphics();
                          Graphics2D g2 = (Graphics2D)g;
                          endPoints2.remove(j);
                          endPoints2.add(j,jdp);
                          g2.setColor(Color.red);
                          g2.setStroke(new BasicStroke(3));
                          paint(g2);  
                      }catch(Exception e){
                           System.out.println("throw exception");
                      }               
             }else{
                      try{
                          int j = endPoints2.indexOf(jdp);
                          Graphics g=mainPanel.getGraphics();
                          Graphics2D g2 = (Graphics2D)g;
                          endPoints2.remove(j);
                          endPoints2.add(j,jdp);
                          g2.setColor(Color.red);
                          g2.setStroke(new BasicStroke(3));
                          paint(g2);  
                      }catch(Exception e){
                          System.out.println("throw exception");
                      }                                 
             }
        }    
         public void paint (Graphics g) {
                        Graphics2D g2 = (Graphics2D)g;
                        //mainPanel.update(g2);
                        if(endPoints1.size() <= endPoints2.size()){
                            for (int i=0; i<endPoints1.size(); i++)
                            g.drawLine(endPoints1.get(i).x, endPoints1.get(i).y, endPoints2.get(i).x, endPoints2.get(i).y);
                        }else{
                              for (int i=0; i<endPoints2.size(); i++)
                              g.drawLine(endPoints1.get(i).x, endPoints1.get(i).y, endPoints2.get(i).x, endPoints2.get(i).y);
                        }
                          
                }
        
          
    }