har prøvet at gøre følgende:
- package drawingProgram;
-
- import java.awt.BasicStroke;
-
- public class MainDrawingFrame extends JFrame {
-
- private JPanel contentPane;
- private int xLoc = 0;
- private int yLoc = 0;
- private JLabel blackSpot;
- private int lastX = 0;
- private int lastY = 0;
- private DrawingPanel drawingPanel;
- private ArrayList<Integer> xList = new ArrayList<Integer>();
- private ArrayList<Integer> yList = new ArrayList<Integer>();
-
- /**
- * Launch the application.
- */
- public static void main(String[] args) {
- EventQueue.invokeLater(new Runnable() {
- public void run() {
- try {
- MainDrawingFrame frame = new MainDrawingFrame();
- frame.setVisible(true);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- }
-
- /**
- * Create the frame.
- */
- public MainDrawingFrame() {
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- setBounds(100, 100, 450, 300);
- contentPane = new JPanel();
- contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
- setContentPane(contentPane);
- contentPane.setLayout(null);
-
-
- drawingPanel = new DrawingPanel();
- drawingPanel.addMouseMotionListener(new MouseMotionAdapter() {
- public void mouseDragged(MouseEvent e) {
-
- xLoc = e.getX();
- yLoc = e.getY();
-
- xList.add(xLoc);
- yList.add(yLoc);
-
- blackSpot = new JLabel("");
- blackSpot.setOpaque(true);
- blackSpot.setBounds(xLoc, yLoc, 2, 2);
- blackSpot.setBackground(Color.black);
- drawingPanel.add(blackSpot);
-
-
- lastX = xLoc;
- lastY = yLoc;
-
- xList.add(lastX);
- yList.add(lastY);
-
-
-
- drawingPanel.repaint();
-
-
-
- }
-
- });
-
- drawingPanel.setBounds(10, 11, 414, 240);
- contentPane.add(drawingPanel);
- drawingPanel.setLayout(null);
-
-
- }
-
- public void paintComponent(Graphics g) {
- int i = 1;
- while (i < xList.size()) {
- g.drawLine(xList.get(i-1),yList.get(i-1),xList.get(i),yList.get(i)); // draw a line
- i++;
- }
-
- }
-
-
- }
Den laver bare linjer fra punkt 0,0 til et andet punkt igen og igen.. kalder ikke på min paintComponent metode, da jeg ikke helt ved hvordan jeg skal gøre det.. man skal jo sende Graphics med som attribut og hvis jeg skal sende det med over kræver det at jeg initialiserer Graphics, som vil have en hel masse inbyggede metoder (som jeg ikke vil have stående i min kode da der er virkelig mange).. men programmet tegner da stadig linjer selvom jeg ikke kalder metoden paintComponent.. er lidt forvirret omkring Graphics