日期:2014-05-20  浏览次数:20607 次

关于Java界面开发。
我做了一个简单的Java的Swing 界面,可是我在每一个JPanel 容器中添加上控件之后,控件的大小却是不能控制,请问有什么方法可以调整吗?
 
Java code
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.border.EmptyBorder; 
import javax.swing.table.DefaultTableModel; 
public class ListCustomTypeFile extends JFrame { 
 
 private JPanel contentPane = new JPanel(new GridLayout(3,1)); 
 private JLabel URILabel = new JLabel(); 
 private JButton chooserButton = new JButton("选择文件夹"); 
 private JLabel messLabel = new JLabel("载入指定文件扩展名称"); 
 private JTextField nameTextFile = new JTextField(); 
 private JScrollPane scroolPane = new JScrollPane(); 
 private JTable table =new JTable(); 
 private DefaultTableModel tableModel = new DefaultTableModel(); 
 
 public ListCustomTypeFile() 
 {
  this.setTitle("显示指定类型的文件"); 
  this.setVisible(true); 
  this.setLocationRelativeTo(null); 
  this.setSize(650, 550); 
  this.setContentPane(contentPane); 
  contentPane.setBorder(new EmptyBorder(5,5,5,5)); 
  
  JPanel panel1 = new JPanel(new GridLayout(1,2)); 
  panel1.add(chooserButton);
  panel1.add(URILabel);
  contentPane.add(panel1);
  
  JPanel panel2 = new JPanel(new GridLayout(1,2)); 
  panel2.add(messLabel);
  panel2.add(nameTextFile);
  contentPane.add(panel2);
  
  JPanel panel3 = new JPanel(new BorderLayout()); 
  panel2.add(scroolPane,BorderLayout.CENTER);
  scroolPane.setViewportView(table);
  
 }
 
 public static void main(String[] args) { 
  // TODO Auto-generated method stub
 new ListCustomTypeFile(); 
 }




------解决方案--------------------
你把控件加入某个容器的时候,此容器使用了默认的布局,也就是说,它会按照所加入控件的类型和数量自动设置控件大小。如果你需要自己控制控件大小,可对该容器调用设置布局函数:
xx.setLayout(null);//xx:容器 
然后你就可以使用xx.setSize()来改变控件的大小了。
------解决方案--------------------
this.setResizable(false);

控制住窗口,不允许调整大小。呵呵~~~