私はちょうどJavaを学んでいて、JavaスイングライブラリとGraphics2Dクラスを使って何かをしなければなりません。基本的に、ボディ (クレーンの本体) と多数の取り付けられたアーム (基本的には次のようになります: http://i.imgur.com/4YIkYqW.jpg )の複数のパーツを持つ建設用クレーンを描画する必要があります。.
私の質問は、Java スイング クラスを正しく使用しているかどうかについてです。以下のコードでは、構造が正しいことを確認したいだけなので (JPanel、paintComponent() などを正しく使用して)、不要なコードを省略しました。私はJavaを学んでいるので、どんな助けでも大歓迎です! みんなありがとう。
public class CraneSimulator {
...
public JFrame frame;
public MyPanel panel;
public CraneSimulator() {
frame = new JFrame("CraneSimulator");
...
panel = new MyPanel();
frame.add(panel);
}
public static void main(String[] args) {
CraneSimulator simulator = new CraneSimulator();
}
}
class MyPanel extends JPanel {
CraneBody body;
CraneArm arm1;
...
Graphics2D graphics;
public MyPanel() {
body = new CraneBody();
arm1 = new CraneArm(body);
...
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
... }
}
public void mouseReleased(MouseEvent e) {
...
}
});
addMouseMotionListener(new MouseAdapter() {
public void mouseDragged(MouseEvent e) {
...
}
});
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
graphics = (Graphics2D) g;
...
body.paint(g);
arm1.paint(g);
}
}
class CraneBody {
...
public CraneBody() {
....
}
...
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
// Use g2 to actual paint crane Body on screen here (ie. g2.drawRect, etc)
}
}
class CraneArm {
...
public CraneArm() {
....
}
...
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
// Use g2 to actual paint the crane armon screen here (ie. g2.drawRect, etc)
}
}