JAVA 布局关于setBounds(int x,int y,int width,int height)求指导!
代码:publicclassImageshowextendsJFrame{publicImageshow(){JLabelr1=newJLabel("");ImageIc...
代码:
public class Imageshow extends JFrame{
public Imageshow(){
JLabel r1=new JLabel("");
ImageIcon ima=new ImageIcon(("C:\\Users\\vane\\Desktop\\火箭队.jpg"));
r1.setIcon(ima);
add(r1);
r1.setBounds(300,100,20,25);
}
public static void main(String args[]){
Imageshow fame=new Imageshow();
fame.setVisible(true);
fame.setSize(700, 500);
fame.setLayout(null);
fame.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
为什么图片不显示呢?
我改过宽/高,图片依然不显示。
如果用setBounds(int x,int y,int width,int height),我其中有的JLabel是存放了图片的。
①那width,height(宽度和高度)需要设置成什么呢?因为其图片本身就存在高度很宽度的啊。
②如果强行设置width和height,那会不会压缩图片? 展开
public class Imageshow extends JFrame{
public Imageshow(){
JLabel r1=new JLabel("");
ImageIcon ima=new ImageIcon(("C:\\Users\\vane\\Desktop\\火箭队.jpg"));
r1.setIcon(ima);
add(r1);
r1.setBounds(300,100,20,25);
}
public static void main(String args[]){
Imageshow fame=new Imageshow();
fame.setVisible(true);
fame.setSize(700, 500);
fame.setLayout(null);
fame.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
为什么图片不显示呢?
我改过宽/高,图片依然不显示。
如果用setBounds(int x,int y,int width,int height),我其中有的JLabel是存放了图片的。
①那width,height(宽度和高度)需要设置成什么呢?因为其图片本身就存在高度很宽度的啊。
②如果强行设置width和height,那会不会压缩图片? 展开
2个回答
展开全部
你的 fame.setVisible(true);太前了.. 往后挪挪... 而且尺寸太小了..
r1.setBounds(300,100,200,252);
public static void main(String args[]) {
Imageshow fame = new Imageshow();
fame.setSize(700, 500);
fame.setLayout(null);
fame.setDefaultCloseOperation(EXIT_ON_CLOSE);
fame.setVisible(true);
}
①那width,height(宽度和高度)需要设置成什么呢?因为其图片本身就存在高度很宽度的啊。
这个看你的需要了.. 想设置多大就设置多大..
②如果强行设置width和height,那会不会压缩图片?
强行设置不会压缩图片,只会显示部分..
想压缩图片,这样做..
ima.setImage(ima.getImage().getScaledInstance(r1.getWidth(),r1.getHeight(),Image.SCALE_DEFAULT));
完整代码:
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Imageshow extends JFrame {
public Imageshow() {
JLabel r1 = new JLabel("123");
r1.setBounds(300, 100, 200, 250);
ImageIcon ima = new ImageIcon("D:\\开机.png");
ima.setImage(ima.getImage().getScaledInstance(r1.getWidth(),r1.getHeight(),Image.SCALE_DEFAULT));
r1.setIcon(ima);
add(r1);
}
public static void main(String args[]) {
Imageshow fame = new Imageshow();
fame.setSize(700, 500);
fame.setLayout(null);
fame.setDefaultCloseOperation(EXIT_ON_CLOSE);
fame.setVisible(true);
}
}
r1.setBounds(300,100,200,252);
public static void main(String args[]) {
Imageshow fame = new Imageshow();
fame.setSize(700, 500);
fame.setLayout(null);
fame.setDefaultCloseOperation(EXIT_ON_CLOSE);
fame.setVisible(true);
}
①那width,height(宽度和高度)需要设置成什么呢?因为其图片本身就存在高度很宽度的啊。
这个看你的需要了.. 想设置多大就设置多大..
②如果强行设置width和height,那会不会压缩图片?
强行设置不会压缩图片,只会显示部分..
想压缩图片,这样做..
ima.setImage(ima.getImage().getScaledInstance(r1.getWidth(),r1.getHeight(),Image.SCALE_DEFAULT));
完整代码:
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Imageshow extends JFrame {
public Imageshow() {
JLabel r1 = new JLabel("123");
r1.setBounds(300, 100, 200, 250);
ImageIcon ima = new ImageIcon("D:\\开机.png");
ima.setImage(ima.getImage().getScaledInstance(r1.getWidth(),r1.getHeight(),Image.SCALE_DEFAULT));
r1.setIcon(ima);
add(r1);
}
public static void main(String args[]) {
Imageshow fame = new Imageshow();
fame.setSize(700, 500);
fame.setLayout(null);
fame.setDefaultCloseOperation(EXIT_ON_CLOSE);
fame.setVisible(true);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询