[英]Gif not showing up in JFrame
我试图让gif出现在我的JFrame之一上,并且程序可以编译,但没有显示我想要显示的gif。 这与我的计算机上存储gif的位置有关吗?
import javax.swing.*;
import java.awt.*;
import java.util.*;
public class iWorkoutScreen
{
public void iWorkoutScreen()
{
String calories = "this many";
this.setBackground(Color.WHITE);
this.setLayout(new BorderLayout());
this.setPreferredSize(new Dimension(800, 400));
this.pack();
JButton button = new JButton("Press to Start Workout");
this.add(button, BorderLayout.PAGE_START);
JLabel timer = new JLabel("this timer will be better");
timer.setPreferredSize(new Dimension(400, 10));
ImageIcon timerIcon = new ImageIcon("7TaK4G8TA.gif");
timer.setIcon(timerIcon);
this.add(timer, BorderLayout.CENTER);
button = new JButton("Button 3 (LINE_START)");
this.add(button, BorderLayout.LINE_START);
button = new JButton("Long-Named Button 4 (PAGE_END)");
this.add(button, BorderLayout.LINE_END);
JLabel caloriesBurned = new JLabel("You have burned " + calories + " calories!!");
this.add(caloriesBurned, BorderLayout.PAGE_END);
}
}
以下MCVE起作用。 它不仅将方法更改为构造函数,而且还纠正了其他问题。 它热链接到图像,以便任何人都可以使用。
import java.awt.*;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.*;
public class iWorkoutScreen extends JFrame {
public iWorkoutScreen() throws MalformedURLException {
String calories = "this many";
this.setBackground(Color.WHITE);
this.setLayout(new BorderLayout());
JButton button = new JButton("Press to Start Workout");
this.add(button, BorderLayout.PAGE_START);
JLabel timer = new JLabel("this timer will be better");
ImageIcon timerIcon = new ImageIcon(
new URL("http://i.imgur.com/T8x0I29.png"));
timer.setIcon(timerIcon);
this.add(timer, BorderLayout.CENTER);
button = new JButton("Button 3 (LINE_START)");
this.add(button, BorderLayout.LINE_START);
button = new JButton("Long-Named Button 4 (PAGE_END)");
this.add(button, BorderLayout.LINE_END);
JLabel caloriesBurned = new JLabel(
"You have burned " + calories + " calories!!");
this.add(caloriesBurned, BorderLayout.PAGE_END);
this.pack();
}
public static void main(String[] args) {
Runnable r = new Runnable() {
@Override
public void run() {
try {
JFrame f = new iWorkoutScreen();
f.setLocationByPlatform(true);
f.setVisible(true);
} catch (MalformedURLException ex) {
ex.printStackTrace();
}
}
};
SwingUtilities.invokeLater(r);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.