【发布时间】:2018-09-22 05:48:03
【问题描述】:
我创建了一个自定义组件InOutList,它扩展了JComponent,我想将它添加到JFrame 上。但它没有显示出来。
这是自定义组件类:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class InOutLists extends JComponent{
GridBagConstraints gbc = new GridBagConstraints();
JPanel backPanel, p1;
JLabel label;
JButton btn;
InOutLists(){
setBackground(new Color(51, 102, 255));
setPreferredSize(new Dimension(100, 100));
backPanel = new JPanel(new GridBagLayout());
p1 = new JPanel();
label = new JLabel("Label 1");
btn = new JButton("Back");
p1.add(btn);
p1.add(label);
gbc.gridx = 0;
gbc.gridy = 0;
backPanel.add(p1, gbc);
}
}
这里是主类:
import java.awt.Dimension;
import javax.swing.JFrame;
import java.awt.BorderLayout;
public class CCMain extends JFrame{
CCMain(){
super("League Management");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(1080, 780);
setPreferredSize(new Dimension(1080, 700));
setMaximumSize(new Dimension(1080, 780));
setVisible(true);
InOutLists iol = new InOutLists();
add(iol, BorderLayout.CENTER);
}
public static void main(String[] args) {
new CCMain();
}
}
【问题讨论】:
-
添加组件后致电
setVisible(true); -
我试过了,还是不行。
-
你现在还没有添加
backPanel到任何东西 -
@MadProgrammer 你想添加它作为答案吗?在我看到您的评论之前,我刚刚确认(加上已故的
add)是问题所在。 -
@AndrewThompson 当然,我正在考虑将其关闭为“错字”,但它可能有助于为 OP 提供许多问题的上下文:P
标签: java swing jframe jcomponent