0

String[][]f(行)、および(列)を受け取るこの関数がありcます。フレーム全体を占めるラベルを調整する必要があります(1270,750)

たとえば、私が受け取った場合:

  • f=3c=3、画像には次のものが含まれます:(423.333,250.)ピクセル
  • f=10c=10、画像には(127,75)ピクセルがあります。

例にあるすべての関数で証明しましたが、機能しません。それを行う方法はありますか?

public void inicialitzamatriu(String[][] arraystrings,int f,int c) {
  ff=f;
  cc=c;
  compsToExperiment=new JPanel();
  GridLayout experimentLayout = new GridLayout(ff,cc);
  compsToExperiment.setLayout(experimentLayout);

  this.setContentPane(compsToExperiment);

  for (int filas=0;filas<ff;filas++){

    for (int columnas=0;columnas<cc;columnas++){
      if (arraystrings[filas][columnas].equals("gat")){

        JLabel cat2 = new JLabel();
        cat2.resize(1270/cc, 750/cc);

        cat2.setIcon(new ImageIcon("cat.png"));
        compsToExperiment.add(cat2);

        /*cat2.getSize();
        //cat2.getWidth();
        //cat2.getHeight();
        cat2.resize(width, height);
        cat2.setBounds(x, y, width, height)
        cat2.setSize(width, height)
        cat2.
        */

      }

      if (arraystrings[filas][columnas].equals("rat")){
        JLabel rat2 = new JLabel();
        rat2.setSize(1270/cc, 750/cc);
        rat2.setIcon(new ImageIcon("raton.png"));
        compsToExperiment.add(rat2);
      }

      if (arraystrings[filas][columnas].equals("menjar")){
        JLabel comida2 = new JLabel();
        comida2.setSize(1270/cc, 750/cc);
        comida2.setIcon(new ImageIcon("comida.png"));
        compsToExperiment.add(comida2);
      }

      if (arraystrings[filas][columnas].equals("res")){
        JLabel nada2 = new JLabel();
        nada2.setSize(1270/cc, 750/cc);
        nada2.setIcon(new ImageIcon("nada.png"));
        compsToExperiment.add(nada2);
      }
    }
  }

  this.repaint();
  //compsToExperiment.repaint();
  compsToExperiment.setVisible(true);
  //this.setVisible(true);
  //this.setVisible(false);

}
4

1 に答える 1