我想創建一個使用Java AWT或Swing的自定義組件,它將是一個包含其他矩形的多個組件的矩形。像這樣:在Java AWT中創建自定義組件
╔══════╗
║ ┌┐ ║
║ ├┘ ║
║ ║
╚══════╝
而這需要是一個組件,我可以優先繪製一條指令。像myFrame.add(new MyComponent())
。
你會說什麼是做到這一點的最好方法?有沒有一種方法可以使用Rectangle
來做到這一點,或者我應該使用JPanel
還是來自Swing?
我想創建一個使用Java AWT或Swing的自定義組件,它將是一個包含其他矩形的多個組件的矩形。像這樣:在Java AWT中創建自定義組件
╔══════╗
║ ┌┐ ║
║ ├┘ ║
║ ║
╚══════╝
而這需要是一個組件,我可以優先繪製一條指令。像myFrame.add(new MyComponent())
。
你會說什麼是做到這一點的最好方法?有沒有一種方法可以使用Rectangle
來做到這一點,或者我應該使用JPanel
還是來自Swing?
我會推薦擴展JPanel
並覆蓋它的paintComponent()
方法。請參閱another answer of mine對此有所幫助。
基本上,當矩形在您的面板上「繪製」時,您需要將其保存爲Jpanel
的成員。然後,在paintComponent
方法中,您只需繪製您在JPanel
中保存的所有矩形。
這是我將如何實現一個 '畫' 的方法:
List<Rectangle> recs;
List<Stroke> strokes;
List<Color> colors;
public void drawRectangle(Rectangle newR, Stroke stroke, Color c){
recs.add(newR);
strokes.add(stroke);
colors.add(c);
}
而且,塗料成分將類似於:
protected void paintComponent(Graphics g){
super.paintComponent(g);
for (int i = 0; i < recs.size(); i ++) {
g.setColor(colors.get(i));
g.setStroke(strokes.get(i));
g.drawRectangle(recs);
}
}
「多個組件」 - >的JPanel用佈局管理器放置每個組件
「繪製」 - >覆蓋組件上的顏色
檢查Java教程Swing部分。