2016-11-30 6 views
0

ボタンを文字列として参照するときにボタンの色を変更しようとすると問題が発生しますか?プログラムで予約が行われたときや、ファイルから読み込んでいるときに色を変更したい(バッファされた読者)ボタン名を文字列として渡すことを考えていた。予約後にボタンの色を変更する

これをする?

while (in.hasNext()){ 
     seat = in.nextLine(); 
     in.nextLine(); 
     in.nextLine(); 
     in.nextLine(); 
     in.nextLine(); 
     seatNum = "btn" + seat; 

     seatNum.setBackground(new java.awt.Color(255, 51, 0)); 

    } 
+0

何が問題なのですか?コードを実行するとどうなりますか? – ItamarG3

+0

私はそこで働いていたコードを提出しましたが、今はエラーを投げているコードに変更しました。 'seatNum.setBackground();'問題です。私は文字列を使用してボタンを参照することはできません。 – gw95

+0

エラーは何ですか?スタックトレースを表示 – ItamarG3

答えて

0

あなたはこれらの二つの機能を使用することができます。

public static void loadButtonAndUpdateColor(String filename) { 
     BufferedReader br; 
     try { 
      br = new BufferedReader(new FileReader(new File(filename))); 
      String[] color = br.readLine().split(","); 
      int[] vals = new int[3]; 
      for (int i = 0; i < color.length; i++) { 
       vals[i] = Integer.parseInt(color[i]); 
      } 
      Color c = new Color(vals[0],vals[1],vals[2]); 
      btnNewButton.setBackground(c); 
      repaint(); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     if (e.getSource() == btnNewButton) { 
      FileWriter fos; 
      try { 
       fos = new FileWriter(new File("path to file")); 
       Color c = new Color(251,51,0); 
       fos.write("" + c.getRed() + "," + c.getGreen() + "," + c.getBlue()); 
       fos.flush(); 
       fos.close(); 
      } catch (IOException e1) { 
       e1.printStackTrace(); 
      } 
      loadButtonAndUpdateColor("path to file"); 
     } 
    } 

最初のものは静的であり、あなたが好きな場所に配置することができます。
2番目はJFrameクラスにある必要があります。私はボタンに名前をつけたbtnNewButton ...

+0

ありがとう!これはまさに私が必要としていたものです。 – gw95

+0

@ gw95答えがうまくいけば、それを受け入れたものとしてマークします(答えの下のV記号)。また、あなたが答えが良いと思うなら、それをupvote ... – ItamarG3

関連する問題