各位大侠,我是初学Java的一只小菜鸟,遇到一个问题无法解决,特来请教,望大家指点迷津,谢谢!
问题如下:
我定义了两个类:
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Command extends JPanel{
protected JButton bstart;
protected JButton bexit;
protected JButton brealign;
protected JButton brestart;
protected JPanel p,panel;
public Command(){
bstart=new JButton("开始");
bexit=new JButton("退出");
brealign=new JButton("重列");
brestart=new JButton("重玩");
p=new JPanel();
panel=new JPanel();
panel.add(bstart);
panel.add(bexit);
panel.add(brealign);
panel.add(brestart);
p.add(panel);
panel.setSize(675, 80);
panel.setLayout(new GridLayout());
p.setBounds(100, 100, 900, 100);
p.setVisible(true);
}
}
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MainInterface extends JFrame{
private BorderLayout b1=new BorderLayout();
private JFrame mf;
private JPanel p1,p2,p3;
private Command com;
public MainInterface(){
mf=new JFrame();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(200, 200, 900, 500);
com=new Command();
p1=new JPanel();
p2=new JPanel();
p3=new JPanel();
p1.setBackground(Color.PINK);
p2.setBackground(Color.YELLOW);
p3.setBackground(Color.lightGray);
final Container c=getContentPane();
p1.add(com.p);
c.add("North",p1);
c.add("East", p2);
c.add("Center",p3);
setVisible(true);
}
public static void main(String[] args){
MainInterface mi=new MainInterface();
}
}我的要的效果是把Command的JPanel p 按原来设置的大小显示在MainInterface的JFrame mf上,可是事情并不如我愿,mf上显示的P总是很小,试了多种方法没成功,包括在MainInterface上重设p的大小也没有用,请问有没有什么办法解决这个问题?
问题如下:
我定义了两个类:
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Command extends JPanel{
protected JButton bstart;
protected JButton bexit;
protected JButton brealign;
protected JButton brestart;
protected JPanel p,panel;
public Command(){
bstart=new JButton("开始");
bexit=new JButton("退出");
brealign=new JButton("重列");
brestart=new JButton("重玩");
p=new JPanel();
panel=new JPanel();
panel.add(bstart);
panel.add(bexit);
panel.add(brealign);
panel.add(brestart);
p.add(panel);
panel.setSize(675, 80);
panel.setLayout(new GridLayout());
p.setBounds(100, 100, 900, 100);
p.setVisible(true);
}
}
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MainInterface extends JFrame{
private BorderLayout b1=new BorderLayout();
private JFrame mf;
private JPanel p1,p2,p3;
private Command com;
public MainInterface(){
mf=new JFrame();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(200, 200, 900, 500);
com=new Command();
p1=new JPanel();
p2=new JPanel();
p3=new JPanel();
p1.setBackground(Color.PINK);
p2.setBackground(Color.YELLOW);
p3.setBackground(Color.lightGray);
final Container c=getContentPane();
p1.add(com.p);
c.add("North",p1);
c.add("East", p2);
c.add("Center",p3);
setVisible(true);
}
public static void main(String[] args){
MainInterface mi=new MainInterface();
}
}我的要的效果是把Command的JPanel p 按原来设置的大小显示在MainInterface的JFrame mf上,可是事情并不如我愿,mf上显示的P总是很小,试了多种方法没成功,包括在MainInterface上重设p的大小也没有用,请问有没有什么办法解决这个问题?
解决方案 »
- js string To date 只要时分 高分求帮助!
- 能帮忙指出下哪里出问题了 然后注释下。。谢谢各位
- hibernate fetch=FetchType.LAZY问题
- JSP报错org.apache.jasper.JasperException: Unable to compile class for JSP: 求教高手
- 学习java需要什么样的基础?新手想学java
- 这段代码最后部分有问题,请高手帮忙修正!
- eclipse+hibernate往mysql中插入数据出现乱码
- 关于串口通信问题
- EJB中有一个Run As选项可以改变用户的角色,这种改变是永久的改变吗?
- Object 类型操作:
- 请大伙帮我看个多线程的代码,很简单
- 这次短些。自己实现的JMS远程方法调用。
改成 p.setPreferredSize(new Dimension(200,30));就可以了。
完整代码如下:
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Command extends JPanel{
protected JButton bstart;
protected JButton bexit;
protected JButton brealign;
protected JButton brestart;
protected JPanel p,panel;
public Command(){
bstart=new JButton("开始");
bexit=new JButton("退出");
brealign=new JButton("重列");
brestart=new JButton("重玩");
p=new JPanel();
panel=new JPanel();
panel.add(bstart);
panel.add(bexit);
panel.add(brealign);
panel.add(brestart);
p.add(panel);
panel.setSize(675, 80);
panel.setLayout(new GridLayout());
p.setPreferredSize(new Dimension(200,30));//设置此组件的首选大小
p.setVisible(true);
}
}
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Command extends JPanel{
protected JButton bstart;
protected JButton bexit;
protected JButton brealign;
protected JButton brestart;
protected JPanel p,panelone,paneltwo;
protected JLabel label;
public Command(){
bstart=new JButton("开始");
bexit=new JButton("退出");
brealign=new JButton("重列");
brestart=new JButton("重玩");
label=new JLabel("初学Java");
label.setFont(new Font("初学Java",1,20));
p=new JPanel();
panelone=new JPanel();
paneltwo=new JPanel();
panelone.add(bstart);
panelone.add(bexit);
panelone.add(brealign);
panelone.add(brestart);
paneltwo.add(label);
p.add(panelone);
p.add(paneltwo);
panelone.setPreferredSize(new Dimension(675,80));
paneltwo.setPreferredSize(new Dimension(225,80));
panelone.setLayout(new GridLayout());
p.setPreferredSize(new Dimension(900,100));
p.setVisible(true);
}
}运行MainInterface的时候,只显示了panelone,而paneltwo没有显示,若将paneltwo.setPreferredSize(new Dimension(225,80))这行代码注释掉,则panelone、paneltwo都能显示,但是并不是按照我设置的大小来显示,这是为什么呢?有什么办法解决这个问题呢?继续请教各位大侠,谢谢......
你设置的paneltwo的大小太大了。设置小点就可以了。
paneltwo.setPreferredSize(new Dimension(200,80));