2013-07-12 109 views
0

我做了一个快速的研究来解决这个问题,但直到现在我还没有发现任何关于此。我将一个图像合并到一个TabbedPane对象中,但是当我尝试将此图像放在TabbedPane内部的标签中心时,它“不工作”。在这种情况下,中心对齐仅适用于水平视图,但我希望处于垂直和水平的中心。看看下面的例子:JTabbedPane图像对齐

import java.awt.BorderLayout; 

import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JMenu; 
import javax.swing.JMenuBar; 
import javax.swing.JPanel; 
import javax.swing.JTabbedPane; 

import com.sh.st.gui.MainScreen; 

public class test { 

    JTabbedPane tabbedPane = new JTabbedPane(); 
    JFrame mainFrame = new JFrame(); 

public static void main (String[] args){ 

     test t = new test(); 

    } 

    public test(){ 

     JPanel entrance = new JPanel(); 
     JLabel lbImage1; 
     JMenuBar bar; 
     JMenu file, registerQuery; 
     ImageIcon Logo= new ImageIcon("rsc/img/imagem.jpg");   


     lbImage1= new JLabel(Logo, JLabel.CENTER); 
      entrance.add(lbImage1); 
       tabbedPane.addTab("Entrance", null, entrance); 
        mainFrame.getContentPane().add(tabbedPane, BorderLayout.CENTER); 
         bar= new JMenuBar(); 
          file= new JMenu("File"); 
           registerQuery= new JMenu("Request"); 
            mainFrame.setVisible(true); 
    } 

}

我想它不是很难做我想做的,但到现在为止,我说,我什么也没有发现,任何人都可以帮助吗?在此先感谢

+0

使用一致的和逻辑的缩进代码块。代码的缩进旨在帮助人们理解程序流程!另外,请确保在提交消息之前查看消息的预览。 –

回答

2

由于其父容器的位置特性,对齐方式将仅水平居中。在这种情况下,它是JPanel的默认布局,即FlowLayout。这个布局管理器不便于垂直对齐。

前提是JLabellbImage1将在JPanelentrance的唯一组件,然后GridLayout可用于水平和垂直居中JLabel两者:

entrance.setLayout(new GridLayout()); 
+0

工程就像一个魅力。谢谢眉头 –