本人初学编程
Jpanel中随机显示图片,程序如下:/*方法1*/
private JLabel getMyLovePhotoLabel()
{
if (MyLovePhotoLabel == null)
{
MyLovePhotoLabel = new JLabel();
MyLovePhotoLabel.setText("");
MyLovePhotoLabel.setBounds(2, 2, 280, 418); ImageIcon Imageicon1 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\011.JPG");
ImageIcon Imageicon2 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\012.JPG");
ImageIcon Imageicon3 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\013.JPG");
ImageIcon Imageicon4 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\014.JPG");
ImageIcon Imageicon5 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\015.JPG");
ImageIcon Imageicon6 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\016.JPG");
ImageIcon Imageicon7 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\017.JPG");
ImageIcon Imageicon8 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\018.JPG");
ImageIcon Imageicon9 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\019.JPG");
ImageIcon Imageicon10 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\020.JPG"); ImageIcon Imageout = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\020.JPG"); Random generator = new Random(); switch (generator.nextInt(10) + 1)
{
case 10:
Imageout = Imageicon10;
break;
case 9:
Imageout = Imageicon9;
break;
case 8:
Imageout = Imageicon8;
break;
case 7:
Imageout = Imageicon7;
break;
case 6:
Imageout = Imageicon6;
break;
case 5:
Imageout = Imageicon5;
break;
case 4:
Imageout = Imageicon4;
break;
case 3:
Imageout = Imageicon3;
break;
case 2:
Imageout = Imageicon2;
break;
case 1:
Imageout = Imageicon1;
break;
default:
break;
} Imageout.getIconWidth();
Imageout.getIconHeight(); MyLovePhotoLabel.setIcon(Imageout); }
return MyLovePhotoLabel;
} public static void main(String[] args)
{
MyLoveVisual test = new MyLoveVisual(); }
}
/*方法二*/
private static final ImageIcon Imaged1 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\011.JPG");
private static final ImageIcon Imaged2 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\012.JPG");
private static final ImageIcon Imaged3 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\013.JPG");
private static final ImageIcon Imaged4 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\014.JPG");
private static final ImageIcon Imaged5 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\015.JPG");
private static final ImageIcon Imaged6 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\016.JPG");
private static final ImageIcon Imaged7 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\017.JPG"); // @jve:decl-index=0:
private static final ImageIcon Imaged8 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\018.JPG");
private static final ImageIcon Imaged9 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\019.JPG");
private static final ImageIcon Imaged10 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\020.JPG");
private JLabel getMyLovePhotoLabel()
{
if (MyLovePhotoLabel == null)
{
ImageIcon[] im={Imaged1,Imaged2,Imaged3,Imaged4,Imaged5,Imaged6,Imaged7,Imaged8,Imaged9,Imaged10};
Random generator = new Random();
int randomint=generator.nextInt(10);
JLabel MyLovePhotoLabel = new JLabel(im[randomint]);
MyLovePhotoLabel.setText("");
MyLovePhotoLabel.setBounds(2, 2, 280, 418);
MyLovePane.add(MyLovePhotoLabel);
}
return MyLovePhotoLabel;
}
现在的情况就是两种方法都不能随机显示图片,连MyLovePhotoLabel都没有显示。但是我如果修改为输出某一张图片,图片还是能显示的:
private JLabel getMyLovePhotoLabel()
{
if (MyLovePhotoLabel == null)
{
MyLovePhotoLabel = new JLabel();
MyLovePhotoLabel.setText("");
MyLovePhotoLabel.setBounds(2, 2, 280, 418); ImageIcon Imaged = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\011.JPG");
Imaged.getIconWidth();
Imaged.getIconHeight(); MyLovePhotoLabel.setIcon(Imaged); }
return MyLovePhotoLabel;
}请问我的问题出在哪?该怎么修改?另外,我装了VE,画出面板后都是出现的private JFrame或JPanel类,是不是在这些private类外加一个
public static void main(String[] args)
{
MyLoveVisual test = new MyLoveVisual(); }这样的函数就可以运行了?MyLoveVisual是我创建的public class。本人第一次发帖,先谢了。
Jpanel中随机显示图片,程序如下:/*方法1*/
private JLabel getMyLovePhotoLabel()
{
if (MyLovePhotoLabel == null)
{
MyLovePhotoLabel = new JLabel();
MyLovePhotoLabel.setText("");
MyLovePhotoLabel.setBounds(2, 2, 280, 418); ImageIcon Imageicon1 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\011.JPG");
ImageIcon Imageicon2 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\012.JPG");
ImageIcon Imageicon3 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\013.JPG");
ImageIcon Imageicon4 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\014.JPG");
ImageIcon Imageicon5 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\015.JPG");
ImageIcon Imageicon6 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\016.JPG");
ImageIcon Imageicon7 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\017.JPG");
ImageIcon Imageicon8 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\018.JPG");
ImageIcon Imageicon9 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\019.JPG");
ImageIcon Imageicon10 = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\020.JPG"); ImageIcon Imageout = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\020.JPG"); Random generator = new Random(); switch (generator.nextInt(10) + 1)
{
case 10:
Imageout = Imageicon10;
break;
case 9:
Imageout = Imageicon9;
break;
case 8:
Imageout = Imageicon8;
break;
case 7:
Imageout = Imageicon7;
break;
case 6:
Imageout = Imageicon6;
break;
case 5:
Imageout = Imageicon5;
break;
case 4:
Imageout = Imageicon4;
break;
case 3:
Imageout = Imageicon3;
break;
case 2:
Imageout = Imageicon2;
break;
case 1:
Imageout = Imageicon1;
break;
default:
break;
} Imageout.getIconWidth();
Imageout.getIconHeight(); MyLovePhotoLabel.setIcon(Imageout); }
return MyLovePhotoLabel;
} public static void main(String[] args)
{
MyLoveVisual test = new MyLoveVisual(); }
}
/*方法二*/
private static final ImageIcon Imaged1 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\011.JPG");
private static final ImageIcon Imaged2 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\012.JPG");
private static final ImageIcon Imaged3 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\013.JPG");
private static final ImageIcon Imaged4 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\014.JPG");
private static final ImageIcon Imaged5 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\015.JPG");
private static final ImageIcon Imaged6 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\016.JPG");
private static final ImageIcon Imaged7 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\017.JPG"); // @jve:decl-index=0:
private static final ImageIcon Imaged8 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\018.JPG");
private static final ImageIcon Imaged9 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\019.JPG");
private static final ImageIcon Imaged10 = new ImageIcon("C:\\java_workspace\\MyLove\\photo\\020.JPG");
private JLabel getMyLovePhotoLabel()
{
if (MyLovePhotoLabel == null)
{
ImageIcon[] im={Imaged1,Imaged2,Imaged3,Imaged4,Imaged5,Imaged6,Imaged7,Imaged8,Imaged9,Imaged10};
Random generator = new Random();
int randomint=generator.nextInt(10);
JLabel MyLovePhotoLabel = new JLabel(im[randomint]);
MyLovePhotoLabel.setText("");
MyLovePhotoLabel.setBounds(2, 2, 280, 418);
MyLovePane.add(MyLovePhotoLabel);
}
return MyLovePhotoLabel;
}
现在的情况就是两种方法都不能随机显示图片,连MyLovePhotoLabel都没有显示。但是我如果修改为输出某一张图片,图片还是能显示的:
private JLabel getMyLovePhotoLabel()
{
if (MyLovePhotoLabel == null)
{
MyLovePhotoLabel = new JLabel();
MyLovePhotoLabel.setText("");
MyLovePhotoLabel.setBounds(2, 2, 280, 418); ImageIcon Imaged = new ImageIcon(
"C:\\java_workspace\\MyLove\\photo\\011.JPG");
Imaged.getIconWidth();
Imaged.getIconHeight(); MyLovePhotoLabel.setIcon(Imaged); }
return MyLovePhotoLabel;
}请问我的问题出在哪?该怎么修改?另外,我装了VE,画出面板后都是出现的private JFrame或JPanel类,是不是在这些private类外加一个
public static void main(String[] args)
{
MyLoveVisual test = new MyLoveVisual(); }这样的函数就可以运行了?MyLoveVisual是我创建的public class。本人第一次发帖,先谢了。
int ran=new Random().nextInt(10);
ImageIcon imgIcon= new ImageIcon("C:\\java_workspace\\MyLove\\photo\\"+ran+".JPG");
lab.setIcon(imIcon);
lab.updateUI();
}每调用一次上面的方法,就随机改变Label的图标一次。可以实现随机更换图片的目的。如果需要将图片显示在JFrame上的话。可以这样。
完整代码:public class Test{
public static void main(String[] args)
{
JFrame frame=new JFrame();
JLabel label=new JLabel()
frame.add(label);
randomIcon(label);
frame.pack();
frame.setVisable(true);
}
}这样每次运行就会显示不同的图片
不好意思,你说的是什么配置?不太懂,该怎么进行?面板更新就是2楼说的lab.updateUI(); 这个函数吧?我之前也不知道。。