1 回答

TA貢獻1799條經驗 獲得超8個贊
您必須設置 JPanel 大小才能顯示圖形。
static class TornadoComponent extends JPanel {
public TornadoComponent() {
setPreferredSize(new Dimension(500, 500));
}
@Override
public void paintComponent(Graphics g) {
//Whatever
}
}
為了觸發paintComponent(Graphics g),您必須在函數tornado.repaint();末尾添加。createComponents()
private void createComponents() {
//All your components
panel.add(tornado);
add(panel);
tornado.repaint();
}
現在顯示多邊形但不在正確的位置(稍微偏離圖像)
因此,我們必須稍微安排一下您的 JPanel:
private void createComponents() {
textBox = new JTextField(" ");
submit = new JButton("Submit");
label = new JLabel("Please enter a windspeed:");
errorLabel = new JLabel("Error Message " );
JPanel upper = new JPanel();
upper.setLayout(new BoxLayout(upper,BoxLayout.X_AXIS));
upper.add(label);
upper.add(textBox);
upper.add(submit);
upper.add(errorLabel);
JPanel lower = new JPanel();
lower.setLayout(new BoxLayout(lower,BoxLayout.X_AXIS));
lower.add(tornado);
JPanel over = new JPanel();
over.setLayout(new BoxLayout(over,BoxLayout.Y_AXIS));
over.add(upper);
over.add(lower);
add(over);
tornado.repaint();
}
基本上我會做一些盒子......
Over
Upper
... your stuff with text
Lower
Our tornado
現在我們的龍卷風是錯誤的方式...
int[] xPoints = {100,200,150};
int[] yPoints = {0,0,150};
瞧:
我們剛剛創建了一個非?;镜凝埦盹L,它不針對任何東西 :)
如果你想稍后改變龍卷風的位置,你只需要回憶一下就可以tornado.repaint();
了。
添加回答
舉報