我的 GuiTest 课程有问题。这是错误,“错误:在类 GUITest 中找不到主方法,请将主方法定义为:public static void main(String[] args) 或 JavaFX 应用程序类必须扩展 javafx.application.Application”。我该如何解决这个问题?
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
//Here i modified this class to add button and implement its action listener.
public class GUITest {
static class buttonlistener implements ActionListener
{
JFrame l1 ;
buttonlistener(JFrame l1)
{
this.l1 = l1;
public static void main(String[] args){
final JFrame f=new JFrame();
f.setLayout(new BorderLayout());
f.add(new PatternPanel());
f.setSize(500,500);
f.setVisible(true);
f.setBackground(Color.CYAN);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
JButton b1 = new JButton("change color");
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae)
{
f.setLayout(new BorderLayout());
f.add(new CircleTile());
f.setSize(500,500);
f.setVisible(true);
f.setBackground(Color.CYAN);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
repaint();
}
});
;
buttonPanel.add(b1);
f.add(buttonPanel,BorderLayout.SOUTH);
}
}
protected void repaint() {
// TODO Auto-generated method stub
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
}
import java.awt.Graphics;
`` import java.awt.Color;
import javax.swing.*;
import java.awt.Graphics2D;
public class PatternPanel extends JPanel {
int i,j,x,y;
@Override
public void paint(Graphics g){
Graphics2D g1=(Graphics2D)g;
g1.setColor(Color.GREEN);
g1.fillRect(0,0,100,100);
g1.drawRect(0,0,100,100);
g1.setColor(Color.BLACK);
g1.drawOval(0,0,100,100);
g1.setColor(Color.YELLOW);
g1.fillOval(0,0,100,100);
g1.setColor(Color.BLACK);
g1.drawOval(10,10,80,80);
g1.drawOval(20,20,60,60);
g1.drawOval(30,30,40,40);
g1.drawOval(40,40,20,20);
g1.drawLine(50,0,50,100);
g1.drawLine(0,50,100,50);
for(i=0;i<3;i++){
x=0 + 50*i;
g1.drawLine(x,0,x,0+100);
}
for(i=0;i<3;i++){
y=0 + 50*i;
g1.drawLine(0,y,0+100,y);
}
//2nd Block
g1.setColor(Color.GREEN);
g1.fillRect(10,120,120,120);
g1.drawRect(10,120,120,120);
for(i=0;i<5;i++){
y=120 + 24*i;
for(j=0;j<5;j++){
x=10 + 24*j;
g1.setColor(Color.BLACK);
g1.drawOval(x,y,24,24);
g1.setColor(Color.YELLOW);
g1.fillOval(x,y,24,24);
g1.setColor(Color.BLACK);
g1.drawOval(x + 3,y + 3,18,18);
g1.drawOval(x + 6,y + 6,12,12);
g1.drawOval(x + 9,y + 9,6,6);
}
}
for(i=0;i<11;i++){
x=10 + 12*i;
g1.drawLine(x,120,x,120+120);
}
for(i=0;i<11;i++){
y=120 + 12*i;
g1.drawLine(10,y,10+120,y);
}
//3rd Block
g1.setColor(Color.GREEN);
g1.fillRect(150,20,240,240);
g1.drawRect(150,20,240,240);
for(i=0;i<6;i++){
y=20 + 40*i;
for(j=0;j<6;j++){
x=150 + 40*j;
g1.setColor(Color.BLACK);
g1.drawOval(x,y,40,40);
g1.setColor(Color.YELLOW);
g1.fillOval(x,y,40,40);
g1.setColor(Color.BLACK);
g1.drawOval(x + 4,y + 4,32,32);
g1.drawOval(x + 8,y + 8,24,24);
g1.drawOval(x + 12,y + 12,16,16);
g1.drawOval(x + 16,y + 16,8,8);
}
}
for(i=0;i<13;i++){
x=150 + 20*i;
g1.drawLine(x,20,x,20+240);
}
for(i=0;i<13;i++){
y=20 + 20*i;
g1.drawLine(150,y,150+240,y);
}
//4th Block
g1.setColor(Color.GREEN);
g1.fillRect(130,275,108,108);
g1.drawRect(130,275,108,108);
for(i=0;i<3;i++){
y=275 + 36*i;
for(j=0;j<3;j++){
x=130 + 36*j;
g1.setColor(Color.BLACK);
g1.drawOval(x,y,36,36);
g1.setColor(Color.YELLOW);
g1.fillOval(x,y,36,36);
g1.setColor(Color.BLACK);
g1.drawOval(x + 6,y + 6,24,24);
g1.drawOval(x + 12,y + 12,12,12);
}
}
for(i=0;i<7;i++){
x=130 + 18*i;
g1.drawLine(x,275,x,275+108);
}
for(i=0;i<7;i++){
y=275 + 18*i;
g1.drawLine(130,y,130+108,y);
}
}
}
import java.awt.Graphics;
import java.awt.Color;
import javax.swing.*;
import java.awt.Graphics2D;
public class CircleTile extends JPanel {
int i,j,x,y;
@Override
public void paint(Graphics g){
Graphics2D g1=(Graphics2D)g;
g1.setColor(Color.GREEN);
g1.fillRect(0,0,100,100);
g1.drawRect(0,0,100,100);
g1.setColor(Color.BLACK);
g1.drawOval(0,0,100,100);
g1.setColor(Color.YELLOW);
g1.fillOval(0,0,100,100);
g1.setColor(Color.BLACK);
g1.drawOval(10,10,80,80);
g1.drawOval(20,20,60,60);
g1.drawOval(30,30,40,40);
g1.drawOval(40,40,20,20);
g1.drawLine(50,0,50,100);
g1.drawLine(0,50,100,50);
for(i=0;i<3;i++){
x=0 + 50*i;
g1.drawLine(x,0,x,0+100);
}
for(i=0;i<3;i++){
y=0 + 50*i;
g1.drawLine(0,y,0+100,y);
}
//2nd Block
g1.setColor(Color.GRAY);
g1.fillRect(10,120,120,120);
g1.drawRect(10,120,120,120);
for(i=0;i<5;i++){
y=120 + 24*i;
for(j=0;j<5;j++){
x=10 + 24*j;
g1.setColor(Color.BLACK);
g1.drawOval(x,y,24,24);
g1.setColor(Color.YELLOW);
g1.fillOval(x,y,24,24);
g1.setColor(Color.BLACK);
g1.drawOval(x + 3,y + 3,18,18);
g1.drawOval(x + 6,y + 6,12,12);
g1.drawOval(x + 9,y + 9,6,6);
}
}
for(i=0;i<11;i++){
x=10 + 12*i;
g1.drawLine(x,120,x,120+120);
}
for(i=0;i<11;i++){
y=120 + 12*i;
g1.drawLine(10,y,10+120,y);
}
//3rd Block
g1.setColor(Color.BLUE);
g1.fillRect(150,20,240,240);
g1.drawRect(150,20,240,240);
for(i=0;i<6;i++){
y=20 + 40*i;
for(j=0;j<6;j++){
x=150 + 40*j;
g1.setColor(Color.BLACK);
g1.drawOval(x,y,40,40);
g1.setColor(Color.RED);
g1.fillOval(x,y,40,40);
g1.setColor(Color.BLACK);
g1.drawOval(x + 4,y + 4,32,32);
g1.drawOval(x + 8,y + 8,24,24);
g1.drawOval(x + 12,y + 12,16,16);
g1.drawOval(x + 16,y + 16,8,8);
}
}
for(i=0;i<13;i++){
x=150 + 20*i;
g1.drawLine(x,20,x,20+240);
}
for(i=0;i<13;i++){
y=20 + 20*i;
g1.drawLine(150,y,150+240,y);
}
//4th Block
g1.setColor(Color.GRAY);
g1.fillRect(130,275,108,108);
g1.drawRect(130,275,108,108);
for(i=0;i<3;i++){
y=275 + 36*i;
for(j=0;j<3;j++){
x=130 + 36*j;
g1.setColor(Color.BLACK);
g1.drawOval(x,y,36,36);
g1.setColor(Color.PINK);
g1.fillOval(x,y,36,36);
g1.setColor(Color.BLACK);
g1.drawOval(x + 6,y + 6,24,24);
g1.drawOval(x + 12,y + 12,12,12);
}
}
for(i=0;i<7;i++){
x=130 + 18*i;
g1.drawLine(x,275,x,275+108);
}
for(i=0;i<7;i++){
y=275 + 18*i;
g1.drawLine(130,y,130+108,y);
}
}
}