首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

应当显示一个圆在中央一级两个底部按钮,为什么没有显示

2013-11-25 
应该显示一个圆在中央一级两个底部按钮,为什么没有显示package EnlargeCircleimport javax.swing.*impor

应该显示一个圆在中央一级两个底部按钮,为什么没有显示
package EnlargeCircle;

import javax.swing.*;
import java.awt.*;

public class ControlCircle1 extends JFrame {

private JButton jbtEnlarge=new JButton();
private JButton jbtShrink=new JButton();
private ControlPanel canvas=new ControlPanel();

public ControlCircle1(){
JPanel panel=new JPanel();
panel.add(jbtEnlarge);
panel.add(jbtShrink);

this.add(canvas,BorderLayout.CENTER);
this.add(panel,BorderLayout.SOUTH);
}

public static void main(String[] agrs){
JFrame frame=new JFrame();
frame.setTitle("ControlCircle");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
frame.setVisible(true);
}
}

class ControlPanel extends JPanel{
private int radius=5;

protected void paintComponent(Graphics g){
super.paintComponent(g);
g.drawOval(getWidth()/2-radius, getHeight()/2-radius,
2*radius, 2*radius);
}
}
运行完之后,只显示窗口,没有里面的内容,这是为什么。(本人新手)

[解决办法]
我也是新手,还没学到swing  不过这里看到  this之指代的是调用该方法的对象,而不是抽口对象,所以要改成frame  但是这样编译时通不过的  因为frame还没有创建   所以我把程序改成这样就可以正常显示了。


import javax.swing.*;
import java.awt.*;

public class gggg extends JFrame {
private JButton jbtEnlarge=new JButton();
private JButton jbtShrink=new JButton();
private ControlPanel canvas=new ControlPanel();

public void init(){
JFrame frame=new JFrame();
frame.setTitle("ControlCircle");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);

JPanel panel=new JPanel();
panel.add(jbtEnlarge);
panel.add(jbtShrink);

frame.add(canvas,BorderLayout.CENTER);
frame.add(panel,BorderLayout.SOUTH);
frame.setVisible(true);
}

public static void main(String[] agrs){

new gggg().init();
}
}

class ControlPanel extends JPanel{
private int radius=5;

protected void paintComponent(Graphics g){
super.paintComponent(g);
g.drawOval(getWidth()/2-radius, getHeight()/2-radius,
2*radius, 2*radius);
}
}

热点排行