为什么设置了JPanel的大小,还是没有变呢?

superzyxun 2004-08-05 10:08:29
我在窗体上设置了一个JPanel,并且在JPanel上放了一张图片,可是每次运行窗体,JPanel的大小只有10*10,我已经在程序中设置了JPaneld大小是700*650啊!

package WeiQi;
import java.awt.*;
import javax.swing.*;
public class TestFrame extends JFrame{
Image icon = new ImageIcon(TestFrame.class.getResource("image/board1.jpg")).getImage();
JPanel jp=new JPanel();
public TestFrame(){
Container cont = getContentPane();
cont.setLayout(new FlowLayout());
//JLabel label = new JLabel("adfdfsdfsdfsdfsad");
jp.setLayout(new FlowLayout());
//label.setBounds(200,100,100,25);
//label.setLocation(200,200);
//jp.add(label);
jp.setSize(700,650);
cont.add(jp);
setSize(800,700);
setVisible(true);
}

public void paint(Graphics g){
super.paint(g);
jp.getGraphics().drawImage(icon,0,0,null);
}

public static void main(String args[]){
TestFrame TF=new TestFrame();
TF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Toolkit kit = Toolkit.getDefaultToolkit(); //用TK得到当前屏幕的尺寸
Dimension screenSize = kit.getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;
TF.setLocation(screenWidth/2-TF.getWidth()/2,screenHeight/2-TF.getHeight()/2);
System.out.println(TF.jp.getHeight()+":"+TF.jp.getWidth());
}
}
...全文
2971 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
superzyxun 2004-08-09
  • 打赏
  • 举报
回复
没办法,只好用JLabel来放图片了!
superzyxun 2004-08-05
  • 打赏
  • 举报
回复
为什么别人那都能正常显示,我的机器上就不行呢,有人能告诉我吗,我应该怎么办啊?
superzyxun 2004-08-05
  • 打赏
  • 举报
回复
TO:ukulele8656(李坏傻馋) 我就是因为JPanel没有变大,才加的这句话的。
TO:benliuxin(本杰明) 在你那真的那么大嘛,为什么,这不是欺负俺嘛。
ukulele8656 2004-08-05
  • 打赏
  • 举报
回复
//jp.setSize(700,650);去掉这行试试,这行要不要无所谓,因为panel会自动充满frame。
你的程序在我这运行一切正常,窗口很大
ukulele8656 2004-08-05
  • 打赏
  • 举报
回复
package WeiQi;
import java.awt.*;
import javax.swing.*;
public class TestFrame extends JFrame{
Image icon = new ImageIcon(TestFrame.class.getResource("image/board1.jpg")).getImage();
JPanel jp=new JPanel();
public TestFrame(){
Container cont = getContentPane();
cont.setLayout(new FlowLayout());
//JLabel label = new JLabel("adfdfsdfsdfsdfsad");
jp.setLayout(new FlowLayout());
//label.setBounds(200,100,100,25);
//label.setLocation(200,200);
//jp.add(label);
//jp.setSize(700,650);去点这行试试
cont.add(jp);
setSize(800,700);
setVisible(true);
}

public void paint(Graphics g){
super.paint(g);
jp.getGraphics().drawImage(icon,0,0,null);
}

public static void main(String args[]){
TestFrame TF=new TestFrame();
TF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Toolkit kit = Toolkit.getDefaultToolkit(); //用TK得到当前屏幕的尺寸
Dimension screenSize = kit.getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;
TF.setLocation(screenWidth/2-TF.getWidth()/2,screenHeight/2-TF.getHeight()/2);
System.out.println(TF.jp.getHeight()+":"+TF.jp.getWidth());
}
}
benliuxin 2004-08-05
  • 打赏
  • 举报
回复
在我这里很大个

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧