import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class MyPatternPrinter extends JFrame { private static final long serialVersionUID = -5822694943140359820L;
MyPatternPanel panel;
JTextField patternTextField;
public MyPatternPrinter() {
super("My Pattern Printer"); } public void go() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); panel = new MyPatternPanel(); this.getContentPane().add(BorderLayout.CENTER, panel);
patternTextField = new JTextField(16);
JButton fillButton = new JButton("Fill");
JPanel controlPanel = new JPanel();
controlPanel.setLayout(new BorderLayout());
controlPanel.add(BorderLayout.WEST, new JLabel("Pattern: "));
controlPanel.add(BorderLayout.CENTER, patternTextField);
controlPanel.add(BorderLayout.EAST, fillButton); this.getContentPane().add(BorderLayout.SOUTH, controlPanel);
fillButton.addActionListener(new ActionListener(){ @Override
public void actionPerformed(ActionEvent arg0) {
panel.setPattern(patternTextField.getText());
panel.repaint();
}
});
this.setSize(300, 200);
this.setVisible(true);
}
public static void main(String [] args) { MyPatternPrinter myPatternPrinter = new MyPatternPrinter();
myPatternPrinter.go();
}
public class MyPatternPanel extends JPanel {
/**
*
*/
private static final long serialVersionUID = -6653258875268598457L;
int row = 0;
int column = 0;
public MyPatternPanel() {
this.setBackground(Color.WHITE);
}
public void setPattern(String pattern) {
try {
String [] numbers = pattern.split(",");
int rowvalue = Integer.parseInt(numbers[0]);
int colvalue = Integer.parseInt(numbers[1]);
this.row = rowvalue;
this.column = colvalue;
} catch (NumberFormatException nfe) {
}
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLACK);
// g.fillOval(10, 10, 10, 10);
for(int i=0; i<row; ++i)
for(int j=0; j<column; ++j)
g.drawOval(j*20, i*20, 20, 20);
}
}
}
import java.awt.*;
import java.awt.event.*;public class MyPatternPrinter extends JFrame { private static final long serialVersionUID = -5822694943140359820L;
MyPatternPanel panel;
JTextField patternTextField;
public MyPatternPrinter() {
super("My Pattern Printer"); } public void go() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); panel = new MyPatternPanel(); this.getContentPane().add(BorderLayout.CENTER, panel);
patternTextField = new JTextField(16);
JButton fillButton = new JButton("Fill");
JPanel controlPanel = new JPanel();
controlPanel.setLayout(new BorderLayout());
controlPanel.add(BorderLayout.WEST, new JLabel("Pattern: "));
controlPanel.add(BorderLayout.CENTER, patternTextField);
controlPanel.add(BorderLayout.EAST, fillButton); this.getContentPane().add(BorderLayout.SOUTH, controlPanel);
fillButton.addActionListener(new ActionListener(){ @Override
public void actionPerformed(ActionEvent arg0) {
panel.setPattern(patternTextField.getText());
panel.repaint();
}
});
this.setSize(300, 200);
this.setVisible(true);
}
public static void main(String [] args) { MyPatternPrinter myPatternPrinter = new MyPatternPrinter();
myPatternPrinter.go();
}
public class MyPatternPanel extends JPanel {
/**
*
*/
private static final long serialVersionUID = -6653258875268598457L;
int row = 0;
int column = 0;
public MyPatternPanel() {
this.setBackground(Color.WHITE);
}
public void setPattern(String pattern) {
try {
String [] numbers = pattern.split(",");
int rowvalue = Integer.parseInt(numbers[0]);
int colvalue = Integer.parseInt(numbers[1]);
this.row = rowvalue;
this.column = colvalue;
} catch (NumberFormatException nfe) {
}
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLACK);
// g.fillOval(10, 10, 10, 10);
for(int i=0; i<row; ++i)
for(int j=0; j<column; ++j)
g.drawOval(j*20, i*20, 20, 20);
}
}
}
import java.awt.*;
import java.awt.event.*;public class MyPatternPrinter extends JApplet { private static final long serialVersionUID = -5822694943140359820L;
MyPatternPanel panel;
JTextField patternTextField; @Override
public void init() {
go();
} public void go() { panel = new MyPatternPanel(); this.getContentPane().add(BorderLayout.CENTER, panel); patternTextField = new JTextField(16);
JButton fillButton = new JButton("Fill"); JPanel controlPanel = new JPanel();
controlPanel.setLayout(new BorderLayout());
controlPanel.add(BorderLayout.WEST, new JLabel("Pattern: "));
controlPanel.add(BorderLayout.CENTER, patternTextField);
controlPanel.add(BorderLayout.EAST, fillButton); this.getContentPane().add(BorderLayout.SOUTH, controlPanel);
fillButton.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent arg0) { panel.setPattern(patternTextField.getText());
panel.repaint();
} }); this.setSize(300, 200);
this.setVisible(true); } public class MyPatternPanel extends JPanel {
/**
*
*/
private static final long serialVersionUID = -6653258875268598457L;
int row = 0;
int column = 0; public MyPatternPanel() {
this.setBackground(Color.WHITE);
} public void setPattern(String pattern) {
try {
String[] numbers = pattern.split(",");
int rowvalue = Integer.parseInt(numbers[0]);
int colvalue = Integer.parseInt(numbers[1]);
this.row = rowvalue;
this.column = colvalue;
} catch (NumberFormatException nfe) {
}
} public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLACK);
// g.fillOval(10, 10, 10, 10);
for (int i = 0; i < row; ++i)
for (int j = 0; j < column; ++j)
g.drawOval(j * 20, i * 20, 20, 20); }
}}讲解和那边差不多:
改动的第一点:将JFrame父类改为JApplet父类,JApplet也是Swing包中的类,如果改成Applet父类,那就是AWT中的类,改动量就会大一点。
改动的第二点:JApplet不需要main方法来运行它,浏览器负责调用Applet的init方法来初始化Applet。Init方法中,需要将原先在main方法中调用的go方法调用一下。
改动的第三点:JApplet是浏览器来关闭它,不需要自己关闭自己,所以关闭相关的代码可以删除。