2014-07-14 32 views
-2

在全屏菜单的时候不就是这样的:为什么在做全屏JFrames和按钮不居中?

然而,当我全屏没有组织:

enter image description here

有人能帮助我吗?

我不知道摆动控件是如何集中在窗体上的。

谢谢。


CODE

登录表单

String sql="select * from logins where username=? and password=?"; 

      try{ 

     pst=(PreparedStatement) conexao.prepareStatement(sql); 
     pst.setString(1, jTUser.getText()); 
     pst.setString(2, jPass.getText()); 

     rs=pst.executeQuery(); 
     if(rs.next()){ 

      String idTipoLogin = rs.getString("idTipoLogin"); 

      if (idTipoLogin.equals("Administrador")) { 

       jTMainMenuAdmin ah = new jTMainMenuAdmin(); 
       ah.setExtendedState(JFrame.MAXIMIZED_BOTH); 
       ah.setVisible(true); 
} 

MAIN MENU FORM

public class jTMainMenuAdmin extends javax.swing.JFrame { 

Connection conexao = null; 
PreparedStatement pst= null; 
ResultSet rs = null; 



public jTMainMenuAdmin() throws SQLException { 
    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
    initComponents(); 
    setTitle(); 
    setIcon(); 
    setDefaultCloseOperation(jTMainMenuAdmin.DO_NOTHING_ON_CLOSE); 
    conexao=(Connection) CriaConexao.getConexao(); 
} 



public static void main(String args[]) { 

    java.awt.EventQueue.invokeLater(new Runnable() { 

     public void run() { 
      try { 
       new jTMainMenuAdmin().setVisible(true); 
      } catch (SQLException ex) { 
       Exceptions.printStackTrace(ex); 
      } 
     } 
    }); 
} 
+1

我们能看到一些代码吗?你使用的是什么布局管理器?你在调用revalidate()吗? – Revive

+1

@ I-LOVE-2-REVIVE您不需要在调整大小时手动调用重新验证...但是,在计算布局问题时,实际查看一些布局代码会很有用 – Ordous

+0

感谢所有人的回复。我用一些代码编辑我的问题。我希望能帮助你摆脱我的怀疑。 – rpirez

回答

-1

我认为你有绝对位置和大小,添加组件:

mybutton.setBounds(x, y, width, height); 

如果您希望组件调整到可用空间,则必须使用布局。

0

这是因为Netbeans使用的默认GroupLayout。您可以改为创建您在JPanel表单上的内容。然后对于框架类,更改布局GridBagLayout,然后将JPanel表单添加到框架。

您可以方便地拖放面板,当你做了,因为看到here

所有你需要做的改变帧的布局管理器看起来选择并右键单击Navigator窗口中的框架和选择设置布局。只需将其更改为GridBagLayout,然后添加面板。


旁白:如果你只是一个初学者,我强烈建议你学会手代码,您开始使用IDE工具搞乱第一前。如果您不了解基本知识,那么该工具非常复杂。你可以看到去The Official Swing Tutorial。布局管理员是一个开始的好地方。然后转到组件/事件监听器