【问题标题】:Problem loading image in the correct frame在正确的帧中加载图像时出现问题
【发布时间】:2011-04-13 16:37:53
【问题描述】:

这是我在主框架窗口中的代码:

public class DynamicalSystem {


    public static  void createAndShowGraphic() {


    //Create and set up the window.
    JFrame frame = new JFrame("Dynamical System: The beauty of Chaos");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JLabel emptyLabel = new JLabel("");
    emptyLabel.setPreferredSize(new Dimension(500, 500));
    frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);




    //Display the window.

    MenuLook menubar = new MenuLook();  //display menubar
    frame.setJMenuBar(menubar.createMenuBar());

    frame.pack();
    frame.setVisible(true);




 }
}

这是来自我的缓冲图像:

public class LabelDemo extends JPanel
{
//path of image
private String path;

//image object
private Image img;

public LabelDemo(String path) throws IOException
{
//save path
this.path = path;

//load image
img = ImageIO.read(new File(path));

}

//override paint method of panel
public void paint(Graphics g)
{
//draw the image
if( img != null)
g.drawImage(img,0,0, this);
}

}
//class image frame periexei tin methodo createloadimage i opoia pernei
//to path apo ton filechooser kai kanei load tin eikona

class ImageFrame{

    public static void createLoadImage(){

       try
    {

        //create frame
        JFrame f = new JFrame();

        //ask for image file
        JFileChooser chooser = new JFileChooser();
        chooser.showOpenDialog(f);

        //create panel with selected file
        LabelDemo panel = new LabelDemo( chooser.getSelectedFile().getPath() );

        //add panel to pane
        f.getContentPane().add(panel);


        //show frame
        f.setBounds(0,0,800,800);
        f.setVisible(true);
    }
        catch(Exception e)
         {
         System.out.println ( "Den dialeksate eikona!");
         }
   }
}

我希望图像在我的主窗口中打开,而不是在新窗口中。我该怎么做?

【问题讨论】:

  • 您的 Shift 键似乎坏了。至少在您输入标题时。
  • 你是什么意思,我该如何修复它
  • @user:我只是在开玩笑说你用大写字母写了标题。这被广泛接受为互联网版的喊叫,不太礼貌。
  • ooo soz ill repair it milions sorry
  • 哎呀有人帮我做的

标签: java image filechooser


【解决方案1】:

也许我遗漏了一些东西,但看起来您实际上并没有将图像放在主框架中,从您的问题来看,这似乎是 DynamicalSystem。相反,看起来您正在 ImageFrame 中创建一个新窗口并将图像放在那里。尝试调用

LabelDemo panel = new LabelDemo( chooser.getSelectedFile().getPath() );

来自 DynamicalSystem 并将 LabelDemo 放入该帧而不是 ImageFrame。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-14
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多