質問

My FlowLayout does paint the pictures very small so i nearly cant see them.

Whats my mistake ?

My plan later is, that it will look like this:

enter image description here

So now iam working on the inner Flow Layout which displays one line of colorSeperations or histograms.

    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);
    }
役に立ちましたか?

解決

put Image as Icon to the JLabel then Image should be resiziable up to maximum Icon's getWidht and getHeight

since your topic is about FlowLayout, code snipped that you posted here showed usage of GridLayout, that could be correct LayoutManager if you accepting that all Object in the Grid will have the same Bounds on the screen

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top