2011-11-01 133 views
0

我正在製作一個免費的跨平臺模擬Java設計器。我已經設計了UI &能夠在Panel.Now添加組件(由用戶選擇),我希望做以下事情 -Java:製作可調整大小和可拖動組件

詞根記憶重新可觀的附加組件,而應用程序是running.I的意思是我想要在鼠標指針位於該組件的邊框時顯示雙頭箭頭,以便用戶開始拖動鼠標指針&其大小增大或減小。而拖面板內部部件的

2.啓用平穩移動。(這個時候,似乎令人沮喪,因爲它閃爍(閃爍),而在其他位置,而不是鼠標指針移動熱點的地方&它的自我!)

3.某些組件(在通過從組件面板中選擇該組件並添加到面板中,然後單擊該面板)放置在離預期點(熱點)有點遠的地方。 下面是拖碼:

public void dragControl(MouseEvent evt) 
{ 
    JComponent jc=(JComponent)evt.getSource(); 
    if((evt.getX()<drawingPane.getWidth()-64)&&(evt.getY()<drawingPane.getHeight()-32)) 
     { 
      jc.setLocation(evt.getX(),evt.getY()); 
      drawingPane.validate(); 

     } 

} 

,這裏是一個在面板添加成分(drawingpane)

private void finalizeControlAddition(JComponent c,JComponent cont,MouseEvent evt,int width,int height) 
{ 
    if((evt.getX()<drawingPane.getWidth()-width)&&(evt.getY()<drawingPane.getHeight()-height)) 
        addComponent(cont,c,evt.getX(),evt.getY(),width,height); 
       // 
       c.setName(Integer.toString(counter));//save a tag of its identification 
       // 
       components.add(counter, c); 
       counter++; 
       // 
       selectedControl=-1; 
       // 
       cont.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); 
       // 
       statusLabel.setText("Control added.Drag to give proper position or select to change properties from Properties pane."); 
} 
private void addComponent(Container container,Component c,int x,int y,int width,int height) 
{ 
     c.setBounds(x,y,width,height); 
    container.add(c); 
     c.repaint(); 
} 
+0

如果您的回答你的問題,你應該寫一個答案,而不是評論,紀念這個爲應答:) –

+0

感謝您的建議:)我是一個相當有。新手。我只是沒有找到像'回答'這樣的標記! –

回答

1

努力後,我已經解決了這些問題。由於這些是任何人都可能遇到的常見問題,我創建了一個開放庫來完成您可以在應用程序中使用的所有這些任務。它可以在這裏找到:

http://sourceforge.net/p/actioncomponent/home/Home

相關問題