2013-04-04 4 views
1

Это может показаться глупым вопросом, но я хотел бы изменить размер «ящика» в моем jFrame. Я буду включать код и картинку.Установка размера ящика

Вот класс JTableResultSet:

import java.sql.*; 
import java.util.*; 
import javax.swing.*; 
import javax.swing.table.TableColumn; 

public class JTableResultSet { 
    public static void main(String[] args) { 
     Vector columnNames = new Vector(); 
     Vector data = new Vector(); 
     JPanel panel = new JPanel(); // 
     try { 
      Class.forName("com.mysql.jdbc.Driver").newInstance(); 
      Connection con = DriverManager.getConnection("jdbc:mysql://localhost/exper482_social", "admin", "testing"); 
      String sql = "Select username, forename, lastname, password from social_users"; 
      Statement statement = con.createStatement(); 
      ResultSet resultSet = statement.executeQuery(sql); 
      ResultSetMetaData metaData = resultSet.getMetaData(); 
      int columns = metaData.getColumnCount(); 
      for (int i = 1; i <= columns; i++) { 
       columnNames.addElement(metaData.getColumnName(i)); 
      } 
      while (resultSet.next()) { 
       Vector row = new Vector(columns); 
       for (int i = 1; i <= columns; i++) { 
        row.addElement(resultSet.getObject(i)); 
       } 
       data.addElement(row); 
      } 
      resultSet.close(); 
      statement.close(); 
     } catch (Exception e) { 
      System.out.println(e); 
     } 
     JTable table = new JTable(data, columnNames); 
     TableColumn column; 
     for (int i = 0; i < table.getColumnCount(); i++) { 
      column = table.getColumnModel().getColumn(i); 
      column.setMaxWidth(250);//250 
     } 
     JScrollPane scrollPane = new JScrollPane(table);   
     panel.add(scrollPane);  
     JFrame frame = new JFrame(); 
     frame.add(panel);//adding panel to the frame 
     frame.setSize(600, 400); //setting frame size 600 400 
     frame.setVisible(true); //setting visibility true 
    } 
} 

А вот фото:

http://i.stack.imgur.com/Wblfx.png

Может кто-то пожалуйста, скажите мне, что я могу сделать, чтобы сделать окно больше? Благодарю.

ответ

1

Вы можете использовать BorderLayout, которые сделают JScrollPane занимают всю площадь JPanel

JPanel panel = new JPanel(new BorderLayout()); 

Значение по умолчанию JPanel расположение, FlowLayout, использует предпочтительный размер данного компонента, который не будет расширяться, чтобы заполнить окно.

Читать Guide to Layout Managers

+0

Благодаря Reimeus, Ill попробовать это. –

+0

Спасибо, он работал как шарм :) –