1

我的 FlowLayout 确实将图片绘制得非常小,所以我几乎看不到它们。

我的错误是什么?

我后来的计划是,它看起来像这样:

在此处输入图像描述

所以现在我正在处理显示一行颜色分隔或直方图的内部流布局。

    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);
    }
4

1 回答 1

1

Image作为图标放入JLabel然后应该可以调整到Image最大Icon's getWidhtgetHeight

由于您的主题是关于FlowLayout的,因此您在此处发布的代码片段显示了用法,如果您接受屏幕上的所有内容都相同GridLayout,那可能是正确的LayoutManagerObjectGridBounds

于 2012-01-07T01:28:56.413 回答