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

パネルで null レイアウトを使用しないでください (そして、setBounds() に乗ります)。

パネルには優先サイズがないため、Swing はペイントするものがないと判断します。

于 2013-04-05T16:31:04.320 に答える