我从我的软件中获取了这段代码。我有一个名为pnlUserInfo的面板。在其中,我有另一个名为pnlStatistikat的面板,其中有另一个面板(仅用于图形),称为pnGrafika。在第一行代码中,我绘制了一些东西然后我不知道如何将它包装在pnGrafik中。 (如何在pnGrafik中调用此类Grafika,以便可以显示对象)
class Grafika extends JPanel{
private static final long serialVersionUID = 1L;
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.fillArc(0, 0, 100, 100, 0, (int)pnUserInfo.tOL);
g.setColor(Color.YELLOW);
g.fillArc(0, 0, 100, 100, (int)pnUserInfo.tOL, (int)pnUserInfo.tOK);
g.setColor(Color.GREEN);
g.fillArc(0, 0, 100, 100, (int)pnUserInfo.tOK+(int)pnUserInfo.tOL, (int)pnUserInfo.tOS);
g.setColor(Color.BLUE);
g.fillArc(0, 0, 100, 100, (int)pnUserInfo.tOK+(int)pnUserInfo.tOL+(int)pnUserInfo.tOS, (int)pnUserInfo.tOP);
}
}
public class pnUserInfo extends JPanel {
public pnUserInfo() {
final JPanel pnlStatistikat = new JPanel();
pnlStatistikat.setBounds(0, 0, 530, 628);
pnlProfiliKryesor.add(pnlStatistikat);
pnlStatistikat.setBackground(myColor);
pnlStatistikat.setLayout(null);
pnlStatistikat.setVisible(false);
JPanel pnGrafik = new JPanel();
pnGrafik.setBounds(250, 30, 110, 110);
pnGrafik.add(new Grafika());
pnlStatistikat.add(pnGrafik);
pnGrafik.setBackground(myColor);
pnGrafik.setLayout(null);
pnGrafik.setVisible(true);
}}
答案 0 :(得分:2)
见评论:
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
class Grafika extends JPanel{
private static final long serialVersionUID = 1L;
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.fillArc(0, 0, 100, 100, 0, 30);
g.setColor(Color.YELLOW);
g.fillArc(0, 0, 100, 100, 30, 50);
g.setColor(Color.GREEN);
g.fillArc(0, 0, 100, 100, 50, 90);
g.setColor(Color.BLUE);
g.fillArc(0, 0, 100, 100, 90,120);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(300,250);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new pnUserInfo());
frame.setVisible(true);
}
}
class pnUserInfo extends JPanel {
public pnUserInfo() {
setLayout(null);//missing
JPanel pnlStatistikat = new JPanel();
pnlStatistikat.setLayout(null);
pnlStatistikat.setBounds(0, 0, 300, 250);
pnlStatistikat.setBackground(Color.CYAN);
add(pnlStatistikat); //missing
//remove pnlStatistikat.setVisible(false);
JPanel pnGrafik = new JPanel();
pnGrafik.setLayout(null);
pnGrafik.setBounds(50, 50, 200, 200);
pnGrafik.setBackground(Color.YELLOW);
Grafika graf = new Grafika();
graf.setBounds(30, 30, 110, 110);//missing
pnGrafik.add(graf);
pnlStatistikat.add(pnGrafik);
pnGrafik.setVisible(true);
}}
答案 1 :(得分:0)
很简单
pnGraphik.add(new Graphika());