2016-06-20 14 views
0

Ich bin sehr neu in Java Swing und Interface-Erstellung. Also sollte ich ein orangefarbenes Quadrat auf JFrame erstellen. Also, ich habe das versuchtBenutzerdefiniertes Widget wird nicht auf JFrame angezeigt

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

class Demo extends JPanel { 
    public void paintComponent(Graphics g) { 
     g.setColor(Color.orange); 
     g.fillRect(20,50,100,100); 
    } 
} 
public class Example implements ActionListener { 
    public void atom() { 
     Demo d = new Demo(); 
     JFrame frame = new JFrame();   
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(400,200); 
     frame.setVisible(true); 
    } 
    public static void main(String[] args) { 
     Example e = new Example(); 
     e.atom(); 
    } 
    public void actionPerformed(ActionEvent e) { 

    } 
} 

Aber das Quadrat zeigt nicht auf und ich konnte nicht finden, warum ist das. Kann mir jemand helfen?

+0

Bitte beachten Sie, ein Tutorial oder zwei zu lesen. Raten ist nie eine gute Heuristik, um programmieren zu lernen. –

+0

@HovercraftFullOfEels Danke. – Adam

Antwort

2

Sie haben vergessen, das Widget "d" zum Inhaltsfenster des Frames hinzuzufügen.

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

class Demo extends JPanel { 
    public void paintComponent(Graphics g) { 
     g.setColor(Color.orange); 
     g.fillRect(20,50,100,100); 
    } 
} 
public class Example implements ActionListener { 
    public void atom() { 
     Demo d = new Demo(); 
     JFrame frame = new JFrame(); 
     frame.getContentPane().add(d); //  
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(400,200); 
     frame.setVisible(true); 
    } 
    public static void main(String[] args) { 
     Example e = new Example(); 
     e.atom(); 
    } 
    public void actionPerformed(ActionEvent e) { 

    } 
} 

More information

+0

Vielen Dank @sudsparrowhawk – Adam

+0

Für eine umfassende Antwort gewählt (0: 0 – c0der

1

Nachdem der Rahmen zu schaffen, d-Panel, um es hinzuzufügen:

  frame.getContentPane().add(d); 

Bitte zu diesem Tutorial beziehen: How to Use Panels

Verwandte Themen