Java FlowLayout делает мои картинки крошечными - PullRequest
1 голос
/ 07 января 2012

Мой FlowLayout рисует картинки очень маленькими, поэтому я почти не вижу их.

В чем моя ошибка?

Мой план позже, что это будет выглядеть так:

enter image description here

Так что теперь я работаю над внутренней схемой потока, которая отображает одну строку цветовых операций или гистограмм.

    public Window(String pfad, Image bild) {
         this.pfad = pfad;
         this.bild = bild;

         int[] actualScalation1 = new int[2];
         Scaler scalerImg1 = new Scaler(bild);
         actualScalation1 = scalerImg1.getActualScalation();

         // int RGB-int Array
         int [][] rgbColorsForPicture;

         // Gib mir das Bild als BufferedImage
         BufferedImage pictureForColorSeperation = null;
        try {
            pictureForColorSeperation = BufferImage.drawthePicture(pfad);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
         // Gib mir das Bild als RGB-int Array
         rgbColorsForPicture = ImageToolK.readRGBvalues(pictureForColorSeperation);
         // Erstelle den roten Farbauszug
         ColorSeperation farbauszugRot = new ColorSeperation(rgbColorsForPicture, 0, 0, 0, actualScalation1[0], actualScalation1[1], 0.5);
         farbauszugRot.createColorSeperation();

         ColorSeperation farbauszugGruen = new ColorSeperation(rgbColorsForPicture, 0, 0, 1, actualScalation1[0], actualScalation1[1], 0.5);
         farbauszugGruen.createColorSeperation();

         ColorSeperation farbauszugBlau = new ColorSeperation(rgbColorsForPicture, 0, 0, 2, actualScalation1[0], actualScalation1[1], 0.5);
         farbauszugBlau.createColorSeperation();

         Histogram histogramRot = new Histogram(rgbColorsForPicture, 0, 0, 0, bild.getHeight(null), bild.getWidth(null), 1, 1);
         histogramRot.createHistogram(bild.getHeight(null), bild.getWidth(null));

         PicturePanel panelbild1 = new PicturePanel(bild, actualScalation1[0], actualScalation1[1]);
         PicturePanel panelbild2 = new PicturePanel(bild, actualScalation1[0], actualScalation1[1]);
         PicturePanel panelbild3 = new PicturePanel(bild, actualScalation1[0], actualScalation1[1]);


         /**
          * 
          * LAYOUTEN
          */

         Panel panel1 = new Panel();
         Panel glDiagramsAndSeperations = new Panel();

         panel1.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));
//       ((FlowLayout) panel1.getLayout()).setAlignment(FlowLayout.LEFT);
//       GridBagLayout gbl = new GridBagLayout();
         GridLayout mainWindow = new GridLayout(1, 0, 0, 0);
         glDiagramsAndSeperations.setLayout(new GridLayout(0, 1, 0, 0));
//
//       GridBagConstraints gbc = new GridBagConstraints();
         setLayout(mainWindow);  // GridBagLayout setzen

//       glDiagramsAndSeperations.add(panel1);
//       
         panel1.add(farbauszugRot);
         panel1.add(farbauszugGruen);
         panel1.add(farbauszugBlau);


//
//       panel1.add(panelbild1); 
//       panel1.add(panelbild2);

         add(panel1);


         this.setBackground(new Color(232, 232, 232)); 

         pack();
         setVisible(true);
    }

1 Ответ

1 голос
/ 07 января 2012

положить Image как Значок в JLabel , затем Image должен иметь изменяемый размер до максимум Icon's getWidht и getHeight

, поскольку ваша тема о FlowLayout, фрагмент кода, который вы разместили здесь, показал использование GridLayout, что может быть правильным LayoutManager, если вы признаете, что все Object в Grid будут одинаковыми Bounds на экране

...