1---面板是不是有自己的坐标?
2---面板加入到框架以后,如果有布局管理器的话,那面板的大小是不是会调整呢?这样的话,原来在面板可以显示的东西是不是会看不到呢?
3---一段小程序,我先在两个按钮上画一个椭圆,然后在中间加入"OK"或者"cancel",但是出现了下面问题(1)如果我将按钮直接加入到框架中没有问题,但是当我将按钮先加入到一个面板.然后再把面板加入到框架中的时候就出问题了,只显示出两个小按钮,而且在框架最上方,而且很小,这是为什么呢?
(2)如果我继续在面板上加入布局管理器的时候,为什么GridLayout()就可以实现,而FLowLayout()就失败呢? 这个问题我在写别的小程序时候也经常出现,这是为什么呢,用FlowLayout()的时候.有时候连图形都显示不出来,但是GridLayout()却可以.
import javax.swing.*;import java.awt.*;
public class bb {
public static void main(String argv[])
{JFrame p=new JFrame("hello");
p.setSize(700,700);
p.setVisible(true);
p.setBackground(Color.RED);
p.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
p.setLayout(new GridLayout(1,2)); //这里倘若改为new Flowlayout()就 出问题了
JButton q=new JButton();
q.add(new tt());
JPanel m=new JPanel(); //m承载一个按钮
m.setLayout(new GridLayout(1,1));
m.add(q);
JButton a=new JButton();
a.add(new gg());
JPanel b=new JPanel(); //b中来承载另一个按钮
b.setLayout(new GridLayout(1,1));
b.add(a);
p.getContentPane().add(m);
p.getContentPane().add(b);
p.setBackground(Color.pink);
}
}
class tt extends JPanel
{protected void paintComponent(Graphics g)
{
g.setColor(Color.GREEN);
g.fillOval(0,0,350,700);
g.setColor(Color.RED);
g.drawString("OK",350/2,350);
}
}class gg extends JPanel
{protected void paintComponent(Graphics g)
{
g.setColor(Color.RED);
g.fillOval(0,0,350,700);
g.setColor(Color.GREEN);
g.drawString("Cancel",350/2,350);
}
}
2---面板加入到框架以后,如果有布局管理器的话,那面板的大小是不是会调整呢?这样的话,原来在面板可以显示的东西是不是会看不到呢?
3---一段小程序,我先在两个按钮上画一个椭圆,然后在中间加入"OK"或者"cancel",但是出现了下面问题(1)如果我将按钮直接加入到框架中没有问题,但是当我将按钮先加入到一个面板.然后再把面板加入到框架中的时候就出问题了,只显示出两个小按钮,而且在框架最上方,而且很小,这是为什么呢?
(2)如果我继续在面板上加入布局管理器的时候,为什么GridLayout()就可以实现,而FLowLayout()就失败呢? 这个问题我在写别的小程序时候也经常出现,这是为什么呢,用FlowLayout()的时候.有时候连图形都显示不出来,但是GridLayout()却可以.
import javax.swing.*;import java.awt.*;
public class bb {
public static void main(String argv[])
{JFrame p=new JFrame("hello");
p.setSize(700,700);
p.setVisible(true);
p.setBackground(Color.RED);
p.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
p.setLayout(new GridLayout(1,2)); //这里倘若改为new Flowlayout()就 出问题了
JButton q=new JButton();
q.add(new tt());
JPanel m=new JPanel(); //m承载一个按钮
m.setLayout(new GridLayout(1,1));
m.add(q);
JButton a=new JButton();
a.add(new gg());
JPanel b=new JPanel(); //b中来承载另一个按钮
b.setLayout(new GridLayout(1,1));
b.add(a);
p.getContentPane().add(m);
p.getContentPane().add(b);
p.setBackground(Color.pink);
}
}
class tt extends JPanel
{protected void paintComponent(Graphics g)
{
g.setColor(Color.GREEN);
g.fillOval(0,0,350,700);
g.setColor(Color.RED);
g.drawString("OK",350/2,350);
}
}class gg extends JPanel
{protected void paintComponent(Graphics g)
{
g.setColor(Color.RED);
g.fillOval(0,0,350,700);
g.setColor(Color.GREEN);
g.drawString("Cancel",350/2,350);
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货