一个关于swing的问题!!

kenshin520 2003-08-20 11:47:15
我在编写swing时出现以下问题,请高手帮忙。编译环境jc2.0+jdk1.4
在编译的时候通过,而运行的时候出错~~~~~~~~
-----------------------------------------------------
java.lang.NullPointerException
at imagechangedemo.Frame1.jbInit(Frame1.java:91)
at imagechangedemo.Frame1.<init>(Frame1.java:81)
at imagechangedemo.Frame1.main(Frame1.java:385)
-----------------------------------------------------
package imagechangedemo;
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import java.awt.color.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;

public class Frame1 extends JFrame
{
JPanel contentPane;

ImageChangePanel myPanel1;

JPanel jPanel1;
JPanel jPanel2;
JPanel jPanel3;
JPanel jPanel4;

JButton jButton1;

JRadioButton jRadioButton1;
JRadioButton jRadioButton2;
JRadioButton jRadioButton3;
JRadioButton jRadioButton4;
JRadioButton jRadioButton5;
JRadioButton jRadioButton6;
JRadioButton jRadioButton7;
JRadioButton jRadioButton8;
JRadioButton jRadioButton9;
JRadioButton jRadioButton10;
JRadioButton jRadioButton11;
JRadioButton jRadioButton12;

ButtonGroup buttonGroup1;
ButtonGroup buttonGroup2;

JLabel jLabel1;
JLabel jLabel2;
JLabel jLabel3;

JTextField jTextField1;
public Frame1()
{
JPanel contentPane = (JPanel)getContentPane();

ImageChangePanel myPanel1 = new ImageChangePanel();

JPanel jPanel1= new JPanel();
JPanel jPanel2= new JPanel();
JPanel jPanel3= new JPanel();
JPanel jPanel4= new JPanel();

JButton jButton1 = new JButton();

JRadioButton jRadioButton1 = new JRadioButton();
JRadioButton jRadioButton2 = new JRadioButton();
JRadioButton jRadioButton3 = new JRadioButton();
JRadioButton jRadioButton4 = new JRadioButton();
JRadioButton jRadioButton5 = new JRadioButton();
JRadioButton jRadioButton6 = new JRadioButton();
JRadioButton jRadioButton7 = new JRadioButton();
JRadioButton jRadioButton8 = new JRadioButton();
JRadioButton jRadioButton9 = new JRadioButton();
JRadioButton jRadioButton10 = new JRadioButton();
JRadioButton jRadioButton11 = new JRadioButton();
JRadioButton jRadioButton12 = new JRadioButton();

ButtonGroup buttonGroup1 = new ButtonGroup();
ButtonGroup buttonGroup2 = new ButtonGroup();

JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();

JTextField jTextField1 = new JTextField();

try
{
jbInit();
}
catch(Exception e1)
{
e1.printStackTrace();
}
} //end of Frame1重載方法

private void jbInit() throws Exception
{
jButton1.setFont(new java.awt.Font("Dialog",0,13));
jButton1.setPreferredSize(new Dimension(61,29));
jButton1.setText("顯示");


jRadioButton1.setFont(new java.awt.Font("Dialog",0,13));
jRadioButton1.setText("反向顯示");



jRadioButton2.setFont(new java.awt.Font("Dialog",0,13));
jRadioButton2.setText("增加亮度");

jLabel1.setFont(new java.awt.Font("Dialog",0,13));
jLabel1.setText("圖像文件:");

//調整JTextField組件的尺寸 並修改其text屬性項

jTextField1.setMinimumSize(new Dimension(40,22));
jTextField1.setPreferredSize(new Dimension(61,29));
jTextField1.setText("D:/Program files/");


jRadioButton3.setFont(new java.awt.Font("Dialog",0,13));
jRadioButton3.setText("降低亮度");


jLabel3.setFont(new java.awt.Font("Dialog",0,13));
jLabel3.setText("變換處理方式");

jRadioButton4.setFont(new java.awt.Font("Dialog",0,13));
jRadioButton4.setText("模糊處理");


jRadioButton5.setFont(new java.awt.Font("Dialog",0,13));
jRadioButton5.setText("邊界監測");

jRadioButton6.setFont(new java.awt.Font("Dialog",0,13));
jRadioButton6.setText("顔色轉換");


jRadioButton7.setFont(new java.awt.Font("Dialog",0,13));
jRadioButton7.setDebugGraphicsOptions(0);
jRadioButton7.setContentAreaFilled(true);
jRadioButton7.setText("原圖顯示");


jLabel2.setFont(new java.awt.Font("Dialog",0,13));
jLabel2.setText("坐標變換");

jRadioButton8.setFont(new java.awt.Font("Dialog",0,13));
jRadioButton8.setText("顔色轉換");


jRadioButton9.setFont(new java.awt.Font("Dialog",0,13));
jRadioButton9.setText("放大");


jRadioButton10.setFont(new java.awt.Font("Dialog",0,13));
jRadioButton10.setText("縮小");

jRadioButton11.setFont(new java.awt.Font("Dialog",0,13));
jRadioButton11.setText("還原");


jRadioButton12.setFont(new java.awt.Font("Dialog",0,13));
jRadioButton12.setText("移動");



//修改myPanel1的顯示尺寸 以方便顯示

jPanel1.add(jTextField1,null);
jPanel1.add(jButton1,null);


jPanel2.add(jRadioButton1,null);
jPanel2.add(jRadioButton2,null);
jPanel2.add(jRadioButton3,null);
jPanel2.add(jRadioButton7,null);


//再窗體中加入myPanel1

//在myPanel1中加入jPanel3和jPanel4

jPanel3.add(jLabel3,null);
jPanel3.add(jRadioButton4,null);
jPanel3.add(jRadioButton5,null);
jPanel3.add(jRadioButton6,null);


jPanel4.add(jLabel2,null);
jPanel4.add(jRadioButton8,null);
jPanel4.add(jRadioButton9,null);
jPanel4.add(jRadioButton10,null);
jPanel4.add(jRadioButton11,null);
jPanel4.add(jRadioButton12,null);

buttonGroup1.add(jRadioButton1);
buttonGroup1.add(jRadioButton2);
buttonGroup1.add(jRadioButton3);
buttonGroup1.add(jRadioButton4);
buttonGroup1.add(jRadioButton5);
buttonGroup1.add(jRadioButton6);
buttonGroup1.add(jRadioButton7);
buttonGroup2.add(jRadioButton8);
buttonGroup2.add(jRadioButton9);
buttonGroup2.add(jRadioButton10);
buttonGroup2.add(jRadioButton11);
buttonGroup2.add(jRadioButton12);


contentPane.add(jPanel2,BorderLayout.SOUTH);
contentPane.add(jPanel1,BorderLayout.NORTH);
myPanel1.setPreferredSize(new Dimension(355,50));
myPanel1.add(jPanel3,BorderLayout.SOUTH);
myPanel1.add(jPanel4,BorderLayout.NORTH);
contentPane.add(myPanel1,BorderLayout.CENTER);



enableEvents(AWTEvent.WINDOW_EVENT_MASK);
this.setSize(new Dimension(600,500));
this.setTitle("java瀏覽器 version1.21");
this.setVisible(true);
}//end of jbInit()method

public static void main(String args[])
{
new Frame1();
}
}//end of Frame1
...全文
39 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kenshin520 2003-08-20
  • 打赏
  • 举报
回复
谢谢大家!问题解决~~~~~~~~~`分值我已经加上了,给大家平均了~~~~~
freejacky 2003-08-20
  • 打赏
  • 举报
回复
这种情况,不用重新定义变量,只要将全局变量进行赋值即可
javahui 2003-08-20
  • 打赏
  • 举报
回复
同理,好象你还有很多这样的情况
JRadioButton jRadioButton1 = new JRadioButton();
JRadioButton jRadioButton2 = new JRadioButton();
JRadioButton jRadioButton3 = new JRadioButton();
JRadioButton jRadioButton4 = new JRadioButton();
JRadioButton jRadioButton5 = new JRadioButton();
JRadioButton jRadioButton6 = new JRadioButton();
JRadioButton jRadioButton7 = new JRadioButton();
JRadioButton jRadioButton8 = new JRadioButton();
JRadioButton jRadioButton9 = new JRadioButton();
JRadioButton jRadioButton10 = new JRadioButton();
JRadioButton jRadioButton11 = new JRadioButton();
JRadioButton jRadioButton12 = new JRadioButton();

都是重新定义了局部变量从而隐藏了全局变量。

把JRadioButton 都去掉。
onefox 2003-08-20
  • 打赏
  • 举报
回复
NullPointerException

你看看哪里是不是有组件没有 new 就加载显示了
javahui 2003-08-20
  • 打赏
  • 举报
回复
JButton jButton1 = new JButton();
这里你重新定义了一个jButton1 ,覆盖了全局变量jButton1 ,所以把JButton 去掉就可以了。

62,614

社区成员

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

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