Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义小部件未显示在JFrame上_Java_Swing - Fatal编程技术网

Java 自定义小部件未显示在JFrame上

Java 自定义小部件未显示在JFrame上,java,swing,Java,Swing,我对JavaSwing和接口创建非常陌生。所以,我应该在JFrame上创建一个橙色正方形。所以,我试过这个 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,

我对JavaSwing和接口创建非常陌生。所以,我应该在JFrame上创建一个橙色正方形。所以,我试过这个

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) {

    }
}

但是广场没有出现,我找不到,为什么。谁能指引我

您忘记将d小部件添加到框架的内容窗格

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) {

    }
}

您忘记将d小部件添加到框架的内容窗格

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) {

    }
}

创建框架后,向其添加d面板:

         frame.getContentPane().add(d);

请参阅本教程:

创建框架后,向其添加d面板:

         frame.getContentPane().add(d);

请参阅本教程:

请考虑阅读一两个教程。猜测不是学习编程的好办法。谢谢你。请考虑读一两个教程。猜测从来都不是学习编程的好方法。@HovercraftFullOfEels谢谢。非常感谢@sudsparrowhawk非常感谢@sudsparrowhawk