请看这个JAVA小程序的问题
功能:根据输入的数字,在屏幕下方画几个方块。问题:为何第一次显示后马上屏蔽,之后再点击按钮才正常显示?importjava.awt.*;importjavax.swing...
功能:根据输入的数字,在屏幕下方画几个方块。
问题:为何第一次显示后马上屏蔽,之后再点击按钮才正常显示?
import java.awt.*; import javax.swing.*;
import java.util.*; import java.awt.event.*;
public class fs extends JFrame {
public static void main(String args[]) {
Demo myDemo=new Demo();
}
}
class Demo extends JFrame implements ActionListener {
JTextField input1= new JTextField(4);
JButton start=new JButton("开始");
int num;
int xo=200, yo=200;
public Demo() {
setSize(1200,800);
setLayout(new FlowLayout());
Container con=getContentPane();
con.add(new JLabel("请输入(1—10)"));
con.add(input1);
con.add(start);
start.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
num=Integer.parseInt(input1.getText());
Graphics g = getGraphics();
for (int i=0; i<num; i++) {
drawBlock(g);
xo=xo+40;
}
}
private void drawBlock(Graphics g) {
g.setColor(Color.blue);
g.fillRect(xo, yo, 30, 100);
}
} 展开
问题:为何第一次显示后马上屏蔽,之后再点击按钮才正常显示?
import java.awt.*; import javax.swing.*;
import java.util.*; import java.awt.event.*;
public class fs extends JFrame {
public static void main(String args[]) {
Demo myDemo=new Demo();
}
}
class Demo extends JFrame implements ActionListener {
JTextField input1= new JTextField(4);
JButton start=new JButton("开始");
int num;
int xo=200, yo=200;
public Demo() {
setSize(1200,800);
setLayout(new FlowLayout());
Container con=getContentPane();
con.add(new JLabel("请输入(1—10)"));
con.add(input1);
con.add(start);
start.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
num=Integer.parseInt(input1.getText());
Graphics g = getGraphics();
for (int i=0; i<num; i++) {
drawBlock(g);
xo=xo+40;
}
}
private void drawBlock(Graphics g) {
g.setColor(Color.blue);
g.fillRect(xo, yo, 30, 100);
}
} 展开
2013-08-20
展开全部
import java.awt.*; import javax.swing.*;
import java.util.*; import java.awt.event.*;
public class JFrameSimple extends JFrame implements ActionListener {
JTextField input1= new JTextField(4);
JButton start=new JButton("开始");
int num;
int xo=200, yo=200;
public JFrameSimple() {
setSize(1200,800);
setLayout(new FlowLayout());
Container con=getContentPane();
con.add(new JLabel("请输入(1—10)"));
con.add(input1);
con.add(start);
start.addActionListener(this);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
num=Integer.parseInt(input1.getText());
Graphics g = getGraphics();
for (int i=0; i<num; i++) {
drawBlock(g);
xo=xo+40;
}
}
private void drawBlock(Graphics g) {
g.setColor(Color.blue);
g.fillRect(xo, yo, 30, 100);
}
public static void main(String args[]) {
JFrameSimple myDemo=new JFrameSimple();
}
}
import java.util.*; import java.awt.event.*;
public class JFrameSimple extends JFrame implements ActionListener {
JTextField input1= new JTextField(4);
JButton start=new JButton("开始");
int num;
int xo=200, yo=200;
public JFrameSimple() {
setSize(1200,800);
setLayout(new FlowLayout());
Container con=getContentPane();
con.add(new JLabel("请输入(1—10)"));
con.add(input1);
con.add(start);
start.addActionListener(this);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
num=Integer.parseInt(input1.getText());
Graphics g = getGraphics();
for (int i=0; i<num; i++) {
drawBlock(g);
xo=xo+40;
}
}
private void drawBlock(Graphics g) {
g.setColor(Color.blue);
g.fillRect(xo, yo, 30, 100);
}
public static void main(String args[]) {
JFrameSimple myDemo=new JFrameSimple();
}
}
追问
还是没有解决啊。和我的程序运行一样。
第一次点击“开始”按钮,无显示。第二次点击,才正常显示。
另:改好后,最好提示我程序为什么出那样的问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是没有刷新的问题
追问
如何刷新?代码。
追答
这个我也不大清楚,你查下api
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
画完后就要调用repait()方法刷新面板.
追问
不太明白,可否给出改动部分代码?
追答
你先说说你这个程序要实现什么功能,我帮你解决.你运行一下这个,试试达到你的效果了没?你需要什么样的功能我帮你实现!我自己写的啊,希望采纳啊!我能帮到你的啊!
public class Test extends JFrame{
int x=100;
int y=100;
int result=0;
JTextField input=null;
JButton start=null;
public Test(){
this.setBounds(200, 100, 400, 400);
initComponent();
addComponent();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void addComponent() {
this.setLayout(new FlowLayout());
this.add(new JLabel("请输入(1-10)的整数:"));
this.add(input);
this.add(start);
}
private void initComponent() {
input=new JTextField(10);
start=new JButton("开始");
//添加事件监听
start.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
result=Integer.parseInt(input.getText());
Graphics g=getGraphics();
for (int i = 0; i < result; i++) {
paint(g);
x+=20;
System.out.println(i);
}
}
});
}
public void paint(Graphics g) {
g.setColor(Color.BLUE);
g.fillRect(x, y, 15, 50);
}
public static void main(String[] args) {
new Test();
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询