0
我需要實現一個狹窄的橋樑的解決方案,我是新的Java線程和gui。 我有三條道路和一座橋(有兩條車道).20每條道路的車輛應隨機創建,並應根據道路上的光線通過橋樑。 ?Java多線程與GUI(交通模擬器的種類)
但首先,我只是想解決一個簡單的問題,這是我怎麼能在這條路上有螺紋上移動車(睡眠1秒,移動點點)
我想這樣: 我用簡單的PaintComponent函數覆蓋創建了道路(我不確定它是否也會像這樣實現)。 創建一個實現可運行的道路類和車輛類。 我在Road類中創建了20輛車的陣列並卡在這裏。
我應該如何將它添加到JPanel並每隔1秒移動一次? 我完全錯誤的如何實現這個問題,因爲我有C系列的背景?
我的代碼:
公共類NarrowBridge {
public static void main(String[] args) {
JFrame myFrame = new JFrame();
PanelSetter newPanel = new PanelSetter();
myFrame.add(newPanel);
myFrame.setDefaultCloseOperation(EXIT_ON_CLOSE);
myFrame.setSize(600, 600);
myFrame.setTitle("Narrow Bridge Problem ");
myFrame.setLocationRelativeTo(null);//To centralize the jframe.
myFrame.setVisible(true);
}
}
類PanelSetter擴展JPanel {
public Road Road1 = new Road(true);
public Road Road2 = new Road(false);
public Road Road3 = new Road(false);
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
//Fixed Roads Drawing.
g.setColor(Color.BLACK);
g.drawLine(50, 100, 200, 100);
g.drawLine(50, 130, 200, 130);
g.setColor(Color.BLACK);
g.drawLine(50, 210, 200, 210);
g.drawLine(50, 240, 200, 240);
g.setColor(Color.BLACK);
g.drawLine(50, 320, 200, 320);
g.drawLine(50, 350, 200, 350);
//Road 1 Light.
if (Road1.getLight()) {
g.setColor(Color.GREEN);
g.fillOval(180, 70, 20, 20);
} else {
g.setColor(Color.RED);
g.fillOval(180, 70, 20, 20);
}
//Road 2 Light.
if (Road2.getLight()) {
g.setColor(Color.GREEN);
g.fillOval(180, 180, 20, 20);
} else {
g.setColor(Color.RED);
g.fillOval(180, 180, 20, 20);
}
//Road 3 Light.
if (Road3.getLight()) {
g.setColor(Color.GREEN);
g.fillOval(180, 290, 20, 20);
} else {
g.setColor(Color.RED);
g.fillOval(180, 290, 20, 20);
}
}
}
路只是一個簡單的課程,只有布爾光,我試過的東西是車輛[]車=新車[20]。
這裏是什麼道路?粘貼你的課 – Shriram
@Shriram我添加了它的內容,但它只不過是一個標準的基礎類。謝謝你的幫助。 –