import java.awt.event.*;
import javax.swing.*;
import java.lang.*;
import java.awt.*;
public class JinWu extends JFrame
{
static int i,j,k,l;
static JFrame f=new JFrame();
String str[]={"左","上","右","下"};
JButton b[]=new JButton[str.length];
JPanel p=new JPanel();
public JinWu()
{
Initbutton();
p.setLayout(new FlowLayout());
f.setSize(600,200);
Init();
repaint();
}
public void Init()
{
i=(int)(Math.random() * 100) % 4;
do
{
j=(int)(Math.random() * 100) % 4;
} while(j==i);
do
{
k=(int)(Math.random() * 100) % 4;
}while(k==i||k==j);
do
{
l=(int)(Math.random() * 100) % 4;
}while(l==i||l==j||l==k);
}
protected void paint()
{
p.add(b[i]);
p.add(b[j]);
p.add(b[k]);
p.add(b[l]);
f.add(p);
}
public void Initbutton()
{
for(int i=0;i<4;i++)
{
b[i]=new JButton(str[i]);
}
}
public static void main(String [] args)
{
JinWu jw=new JinWu();
f.setVisible(true);
}
}我想随机显示四个button 但是repaint函数却不调用paint函数 怎么回事啊?
import javax.swing.*;
import java.lang.*;
import java.awt.*;
public class JinWu extends JFrame
{
static int i,j,k,l;
static JFrame f=new JFrame();
String str[]={"左","上","右","下"};
JButton b[]=new JButton[str.length];
JPanel p=new JPanel();
public JinWu()
{
Initbutton();
p.setLayout(new FlowLayout());
f.setSize(600,200);
Init();
repaint();
}
public void Init()
{
i=(int)(Math.random() * 100) % 4;
do
{
j=(int)(Math.random() * 100) % 4;
} while(j==i);
do
{
k=(int)(Math.random() * 100) % 4;
}while(k==i||k==j);
do
{
l=(int)(Math.random() * 100) % 4;
}while(l==i||l==j||l==k);
}
protected void paint()
{
p.add(b[i]);
p.add(b[j]);
p.add(b[k]);
p.add(b[l]);
f.add(p);
}
public void Initbutton()
{
for(int i=0;i<4;i++)
{
b[i]=new JButton(str[i]);
}
}
public static void main(String [] args)
{
JinWu jw=new JinWu();
f.setVisible(true);
}
}我想随机显示四个button 但是repaint函数却不调用paint函数 怎么回事啊?
把
public void paint(Graphics g)
{
super.paint(g);
System.out.print("sssssssssss");
f.getContentPane().add(b[i]);
f.getContentPane().add(b[j]);
f.getContentPane().add(b[k]);
f.getContentPane().add(b[l]);
g.dispose();
//f.add(p);
} 换成下面的试试
public void paintComponent(Graphics g)
{
super.paintComponent(g);
System.out.print("sssssssssss");
f.getContentPane().add(b[i]);
f.getContentPane().add(b[j]);
f.getContentPane().add(b[k]);
f.getContentPane().add(b[l]);
g.dispose();
//f.add(p);
}
还是同样的回答, 至于能不能随机显示, 那就得看你的程序中其他部分是否正确了