如何在Java中繪製一個填充的正方形框,該正方形框完全位於applet窗口的中心?當調整窗口大小時,它在applet窗口內水平和垂直居中?我希望它適應屏幕的垂直高度,但保持方形,即使是水平寬度的邊緣。如果窗戶的大小太窄,那邊可能會切斷?如何在Java中繪製一個填充正方形框,該框完全位於applet窗口的中心?
1
A
回答
1
下面是一個面板的例子,它可以在中間形成一個30px的正方形,或者調整面板的大小。也許它可以給你足夠的進步。
private class MyPanel extends JPanel{
int height = 30;//30 pixels high.
int width = 30;//30 pixels wide.
boolean resize = true;
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int verticalCenter = this.getHeight()/2;
int horizontalCenter = this.getWidth()/2;
if(!resize){
int topLeftSquareCornerY = verticalCenter - (height/2);
int topLeftSquareCornerX = horizontalCenter - (width/2);
g.setColor(Color.BLUE);
g.drawRect(topLeftSquareCornerX, topLeftSquareCornerY, width, height);
}else{
g.setColor(Color.GREEN);
g.drawRect(15,15,(this.getWidth()-30), this.getHeight()-30);
}
}
}
+0
非常感謝您的幫助...我已經部分理解了,因爲我在代碼中發現了錯誤計算。但感謝您的幫助。你們是非常有幫助的。 :) – Tom 2010-02-01 00:57:13
1
聽起來像你的基本問題是搞清楚如何正確地放置給定的矩形。您需要在矩形的中間中的屏幕的中間。
從矩形中間到邊的距離分別是高度和長度的一半。
所以x1,x2 = middle_x±width/2,y1,y2 = middle_y±height/2。
1
我猜你想繪製一個固定的size
的方塊,在面板調整大小時,它停留在面板的center
。解決這些問題的一種方法是從頭開始並向後推進。你知道約fillRect()
,所以寫下你需要「填補空白」的方法所需的。撥打center
座標x
和y
。上角將爲size
的一半,左邊的角落爲左邊的size
的一半;方形的寬度和高度將只是size
:
g.fillRect(left, top, width, height);
g.fillRect(x - size/2, y - size/2, size, size);
現在回去弄清楚,x
和y
分別一半面板的寬度和高度,:
int x = getWidth()/2;
int y = getHeight()/2;
現在把它放在一起的你的paintComponent()
方法。
相關問題
- 1. 如何繪製一個窗口框架
- 2. 使用另一個窗口填充窗口中的文本框
- 3. 如何在MFC的非矩形窗口中繪製邊框
- 4. 如何在libgdx中的文本後面繪製一個填充正方形?
- 5. Java Applet:如何繪製一個方形的字符串?
- 6. 在Python xlib中繪製窗口邊框
- 7. 在控制檯中打印一個填充的正方形
- 8. 如何在Matlab中獲取中心點來繪製正方形?
- 9. 如何在BlackBerry中繪製一個實心方形?
- 10. 在android中繪製填充形狀mapview
- 11. gnuplot:在3d圖中繪製一個填充的矩形(splot)
- 12. 未在定製窗口繪製框架
- 13. 如何在php中一次繪製多個圖像中的填充矩形?
- 14. 如何繪製填充的多邊形?
- 15. 如何使用OpenGL在中心按鈕上繪製正方形?
- 16. 縮放圖像完全填充邊框
- 17. 如何重新繪製java applet中的繪畫方法?
- 18. 在ggplot中,如何在同一個窗口中繪製多個圖形?
- 19. 如何在一個框架中繪製2個正態分佈?
- 20. Libgdx - 如何在scene2d的正確位置繪製填充的矩形?
- 21. 在Matlab中填充boxplot中的方框
- 22. 在Cocos 2d v3中繪製一個填充矩形
- 23. 如何在另一個窗口的窗體中繪製
- 24. 將位圖圖像繪製到窗口中的正確方法
- 25. 如何繪製填充多邊形?
- 26. 如何在PDFBox中繪製填充的矩形?
- 27. 如何繪製並旋轉其他方形中心的方形?
- 28. 繪製和填充圓形
- 29. 在C++窗口中繪製圖形
- 30. 在foor loop的畫布上繪製正方形只繪製一個正方形
這是偶然的作業嗎? – 2010-01-31 19:50:56
您是否正在尋找自己編寫代碼的代碼,或者您在尋找佈局管理器來保持組件的中心位置?此外,你是什麼意思「保持平方,甚至水平寬度的邊緣」?你是說你想讓它保持最小尺寸? – aperkins 2010-01-31 19:51:18
是的,這是我的任務的最後一部分,我已經騎了兩天,然後決定必須拋出毛巾。這是一個我一直在使用fillRect編寫的繪圖代碼本身。但問題是當我試圖集中它時 fillRect(寬* 5/10,高* 5/10,寬/ 10/2,高/ 10/2); 它居中,但只有左上角(x,y線)居中,而不是圖像中間。對不起,我的意思是保持方形,即使水平寬度發生變化 - >就好像它被調整爲一個非常狹窄的矩形,然後它會被裁剪成矩形 – Tom 2010-01-31 20:04:26