我设置了线条,矩形和椭圆形,我有一个问题。
如何在主方法中显示线条,椭圆和矩形?出于某种原因,当我编译并运行文件时,它们没有被输出...谢谢
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JPanel;
public class LinesRectsOvalsJPanel extends JPanel {
public LinesRectsOvalsJPanel() {
setLayout(new BorderLayout());
setPreferredSize(new Dimension(10, 23));
JPanel rightPanel = new JPanel(new BorderLayout());
rightPanel.setOpaque(true);
add(rightPanel, BorderLayout.EAST);
}
public void paintComponent( Graphics g ) {
super.paintComponent( g );
this.setBackground( Color.WHITE );
// x y width height
g.setColor(Color.BLACK);
g.drawLine(5,10,5,30);
g.setColor(Color.BLUE);
g.drawLine(18,70,127,24);
g.setColor(Color.RED);
g.drawLine(25,45,100,38);
g.setColor(Color.YELLOW);
g.drawOval(23,25,23,55);
g.setColor(Color.BLACK);
g.drawOval(15,14,40,78);
g.setColor(Color.CYAN);
g.drawOval(180,102,5,90);
g.setColor(Color.RED);
g.drawOval(21,20,89,11);
g.setColor(Color.BLUE);
g.drawOval(35,87,39,27);
g.setColor(Color.YELLOW);
g.fillRect(87,5,5,60);
g.setColor(Color.GREEN);
g.fillRect(105,15,15,85);
g.setColor(Color.CYAN);
g.fillRect(14,45,76,86);
g.setColor(Color.RED);
g.fillRect(70,79,65,86);
g.setColor(Color.BLUE);
g.fillRect(90,108,5,8);
}
}
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.border.BevelBorder;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame("");
frame.setLayout(new BorderLayout());
frame.setSize(300, 300);
JPanel statusPanel = new JPanel();
statusPanel.setBorder(new BevelBorder(BevelBorder.LOWERED));
frame.add(statusPanel, BorderLayout.SOUTH);
statusPanel.setPreferredSize(new Dimension(frame.getWidth(), 16));
statusPanel.setLayout(new BoxLayout(statusPanel, BoxLayout.X_AXIS));
JLabel statusLabel = new JLabel("status");
statusLabel.setHorizontalAlignment(SwingConstants.LEFT);
statusPanel.add(statusLabel);
frame.setVisible(true);
}
}
答案 0 :(得分:2)
您尚未添加LinesRectsOvalsJPanel
组件:
frame.add(new LinesRectsOvalsJPanel());
答案 1 :(得分:0)
尝试这样的事情:
这是主类(框架):
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Frame extends JFrame{
Panel p = new Panel();
public Frame(){
p.setPreferredSize(new Dimension(640,480));
add(p);
}
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
Frame f = new Frame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
});
}
}
您的小组课程:
import javax.swing.*;
public class Panel extends JPanel{
public void paintComponent(Graphics g){
g.setColor(Color.BLUE);
g.fillRect(20, 20, 50, 50);
}
}