1

我想从 src 文件夹在我的 JTabbed 窗格布局上实现 200 * 200 图片。

我的问题是什么都没有显示-没有错误,没有例外,也没有图片。

我认为我不必声明该目录并将其设置为私有,因为它已包含在 src 文件夹中。

import java.awt.*;
import javax.swing.*;

import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JFrame;



public class Example1 
        extends JFrame 


{
    private     JTabbedPane tabbedPane;
    private     JPanel      panel1;

    public Example1()
    {
        // NOTE: to reduce the amount of code in this example, it uses
        // panels with a NULL layout.  This is NOT suitable for
        // production code since it may not display correctly for
        // a look-and-feel.

        setTitle( "Program" );
        setSize( 800, 400 );
        setBackground( Color.gray );

        JPanel topPanel = new JPanel();
        topPanel.setLayout( new BorderLayout() );
        getContentPane().add( topPanel );

        // Create the tab pages
        createPage1();


        // Create a tabbed pane
        tabbedPane = new JTabbedPane();
        tabbedPane.addTab( "Tab Page", panel1 );
        topPanel.add( tabbedPane, BorderLayout.CENTER );
    }

    public void createPage1()
    {
        panel1 = new JPanel();
        panel1.setLayout( null );

        ImageIcon pic = new ImageIcon("test.png");
        JLabel label = new JLabel (pic);
        panel1.add(label);
        label.setVisible (true);
        label.setBounds( 200, 200, 200, 400 );
}

// Main method to get things started
    public static void main( String args[] )
    {
        // Create an instance of the test application
        Example1 mainFrame  = new Example1();
        mainFrame.setVisible( true );


    }
}

如果您希望我提供更多信息,请索取。

4

2 回答 2

1

不要在面板上使用空布局(并使用 setBounds())。

面板没有首选尺寸,因此 Swing 认为没有什么可绘制的。

于 2013-04-05T16:31:04.320 回答
0

ImageIcon如果找不到图像,则不会显示任何错误 - 确保图像位于应用程序的应用程序目录中

重新使用文档null中的布局

尽管可以不使用布局管理器,但您应该尽可能使用布局管理

于 2013-04-05T16:32:56.573 回答