[Java]tekenen in swing

Pagina: 1
Acties:

  • maxjuh
  • Registratie: November 2004
  • Laatst online: 19-03-2025
Ik zit met het volgende probleem:

Ik ben een applicatie aan het maken in java en maak gebruik van swing (De applicatie is nog lang niet voltooied dus de code hieronder is ook niet compleet). Er worden knoppen gemaakt en dat gaat allemaal goed totdat ik dingen wil gaan tekenen met paint() (uit awt). Dan zie ik wel een lijn maar de knoppen zie je pas als je er met de muis overheen gaat.

Heb me suf lopen zoeken hier op het forum en kwam iemand tegen met het zelfde probleem [Java]swing paint. Daar word onderandere gesproken over de methodes in JFrame: pack() en repaint() enz om het probleem op te lossen maar als ik dat doe kan ik de knoppen helemaal niet meer laten verschijnen.

hier stukje code waar ik onderandere pack() gebruik maar dus helemaal geen knoppen meer krijg
Java:
1
2
3
4
5
6
7
8
    public static void main(String[] args)
    {
        JFrame frame = new InterFace();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
        frame.setSize(400, 600);
    }



hieronder staat de complete code (in dit geval moet ik eerst met de muis over de knoppen om ze te zien)
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import javax.swing.*;
import java.awt.event.*;
import java.awt.Color;
import java.awt.*;

public class InterFace extends JFrame
{
    private JButton drank_1, drank_2, drank_3, drank_4, drank_5, drank_6, drank_7, drank_8, drank_9, drank_10, drank_11, drank_12;
    public InterFace()
    {     
        setLayout(null);
    
        getContentPane().setBackground(Color.WHITE);
        
        drank_1 = new JButton();
        drank_1.setBounds(10, 10, 50, 100);
        
        drank_2 = new JButton();
        drank_2.setBounds(70, 10, 50, 100);
            
        drank_3 = new JButton();
        drank_3.setBounds(130, 10, 50, 100);
            
        drank_4 = new JButton();
        drank_4.setBounds(190, 10, 50, 100);
                
        
        drank_5 = new JButton();
        drank_5.setBounds(10, 120, 50, 100);
        
        drank_6 = new JButton();
        drank_6.setBounds(70, 120, 50, 100);
        
        drank_7 = new JButton();
        drank_7.setBounds(130, 120, 50, 100);
        
        drank_8 = new JButton();
        drank_8.setBounds(190, 120, 50, 100);
        
        drank_9 = new JButton();
        drank_9.setBounds(10, 230, 50, 100);
        
        drank_10 = new JButton();
        drank_10.setBounds(70, 230, 50, 100);
        
        drank_11 = new JButton();
        drank_11.setBounds(130, 230, 50, 100);
        
        drank_12 = new JButton();
        drank_12.setBounds(190, 230, 50, 100);
        
        
        add(drank_1);
        add(drank_2);
        add(drank_3);
        add(drank_4);
        add(drank_5);
        add(drank_6);
        add(drank_7);
        add(drank_8);
        add(drank_9);
        add(drank_10);
        add(drank_11);
        add(drank_12);
        
        KnopHandler handler = new KnopHandler();
        drank_1.addActionListener(handler);
    
    }
    
    public void paint(Graphics g)
    {
        g.drawLine(270, 0, 270, 600);
    }
    

    public static void main(String[] args)
    {
        JFrame frame = new InterFace();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 600);
        frame.setVisible(true);
    }
    
    class KnopHandler implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            
        }
    }
}

  • remyblok
  • Registratie: Oktober 2003
  • Laatst online: 26-03 10:20
Meestal wordt het voor mij opgelost door voor je je eigen paint() statments schijft de pain() van super aan te roepen. Dus:

Java:
1
2
3
4
5
public void paint(Graphics g) 
{ 
    super.paint(g);
    //eigen code
}

  • maxjuh
  • Registratie: November 2004
  • Laatst online: 19-03-2025
YES _/-\o_ het werkt. TY!!

simpele oplossing dus voor het probleem