2014-01-26 33 views
1

在鞦韆環境中,我畫按鈕並設置動作在我的框架上移動。
當我的按鈕到達框架或按鈕的角落和框架的長度和寬度是相等的;做其他行動或類似的東西。
我的問題是我找不到任何組件來比較按鈕和幀的位置或長度和寬度。如何比較框架和按鈕的寬度和長度?

ActionListener al = new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent e) { 
      x= x + 10 ; 
      y=y + 10 ; 
      jButtonMove.setLocation(x, y); 
    } 
    }; 
    Timer t = new Timer(500 , al); 
    t.start(); 
+0

如果(button.getWidth()+ button.locationX() lummycoder

+0

@ shved90 thnx作答覆。 –

回答

1

請看看Component.getX()Component.getY()用於獲取X和Y座標Component.getWidth()Component.getHeight(),以得到該部件的寬度和高度

下面是進一步的幫助示例代碼:

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class LocationExample { 

    private JButton button; 
    private JTextField tField; 
    private JPanel contentPane; 

    private void displayGUI() { 
     JFrame frame = new JFrame("Location Example"); 
     frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 

     contentPane = new JPanel(); 
     button = new JButton("Useless"); 
     button.addActionListener(new ActionListener() { 
      @Override 
      public void actionPerformed(ActionEvent ae) { 
       tField.setText("X : " + tField.getX() + 
           " Y : " + tField.getY() + 
           " Width : " + tField.getWidth() + 
           " Height : " + tField.getHeight()); 
       System.out.println("X : " + button.getX() + 
            " Y : " + button.getY() + 
            " Width : " + button.getWidth() + 
            " Height : " + button.getHeight()); 
      } 
     }); 
     tField = new JTextField("Useless", 10); 

     contentPane.add(button); 
     contentPane.add(tField); 

     frame.setContentPane(contentPane); 
     frame.pack(); 
     frame.setLocationByPlatform(true); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     Runnable runnable = new Runnable() { 
      @Override 
      public void run() { 
       new LocationExample().displayGUI(); 
      } 
     }; 
     EventQueue.invokeLater(runnable); 
    } 
}