• 締切済み

javaでスライダーからフレームのサイズを変更する

プログラミング初心者です。 GUIプログラミングの勉強をしています。 質問の内容ですが、一つのウィンドウ内で 縦スライダーによるRGB値の変更とその反映 横スライダーによるウィンドウフレームサイズの変更 できるプログラムを書いています。 そこで分らない点が出てきたので、質問させていただきました。 題名の通りなのですが、 「横スライダーによるウィンドウフレームサイズの変更」の方法がわかりません。 コードを書きたいのですが文字制限があるので 一部抜粋で書き込ませていただきます。 回答お願いできますでしょうか。 以下コードです。 (ここより上はRGBのラベル作成やテキストフィールドの貼り付けなどです) String[] label2={"Height","Width"}; JTextField[] txf2 =new JTextField[2]; Border line2 = new LineBorder( Color.red, 2 ); for(i=0;i<2;i++){ txf2[i] =new JTextField("100",2); title1 =new TitledBorder(line,label[i]); txf[i].setBorder( title1 ); txf[i].setEditable(false); } panel=new JPanel[4]; for(i=0;i<4;i++) panel[i]=new JPanel(); panel[1].add(txf[3]); slide=new JSlider[3]; rgb=new int[3]; for(i=0;i<3;i++){ rgb[3]=slide[i].getValue(); panel[0].add(slide[i]); } pane.add(panel[0],BorderLayout.NORTH); panel[4].setBackground(new Color(rgb[0],rgb[1],rgb[2])); pane.add(panel[4],BorderLayout.CENTER); slide=new JSlider[2]; size=new int[2]; for(i=0;i<2;i++){ size[2]=slide[i].getValue(); panel[3].add(slide[i]); } pane.add(panel[3],BorderLayout.WEST); Slider.setSize( size[0],size[1]); 以上です。 ウィンドウのサイズ変更を取得するのに >Slider.setSize( size[0],size[1]); この配列から数値をとっているのでここが悪いのはわかっているんですが、 何をどう書き換えれば、サイズ変更がうまく反映されるのか全くわかりません。 大変長くなった上、下手な文章ですが、ご回答よろしくお願いします。

みんなの回答

  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.1

 こんにちは。  ちょっと、よくわかりません。  現在の状況は、 1.ある目的を実現させるための設計がよくわからない。 (この場合、どういう目的なのか、そのためにどのように設計するつもりなのかを補足してください) 2.とりあえず作ったが、コンパイルが通らない。 (コンパイルエラーの内容を補足してください) 3.コンパイルは通り、実行できるのだが、思い通りの動きをしない。 (どのように動かすつもりが、どうなってしまうのか具体的に補足してください)  どれでしょうか。  補足をお願いします。  あと、↓ここの部分ですが、 slide=new JSlider[2]; size=new int[2];  JSlider の配列は作っているが、インスタンスを作っていないので、NullPointerException が出ると思うのですが、タイプミスでしょうか?それとも、ここが原因なのですか?

関連するQ&A