1. swing是用布局管理器来负责调整组件的位置和大小的。
如果真需要自己来强制大小,可以先用
jpanel.setLayout(null);
然后设置大小,比如对于JButton
button1.setPreferredSize(new Dimension(100, 100));
2. 在GroupLayout中,使用setHorizontalGroup()和setVerticalGroup()函数分别来确定各个控件的水平和竖直排列方式,比如哪几个属于一组,要留出多大空隙,对齐方式等。
比如:
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(gField)
.addComponent(oField, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 150, Short.MAX_VALUE))
.addComponent(jLabel1,javax.swing.GroupLayout.Alignment.CENTER)
.addContainerGap())
);
3. 为UI添加键盘或者点击等事件监听
点击事件处理可以用这个函数
q.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
qOKActionPerformed(evt);//事件处理函数
}
});
对于键盘事件
gField.addKeyListener(new java.awt.event.KeyListener(){//比如三个函数都重载,具体原因没研究
public void keyPressed(java.awt.event.KeyEvent evt) {
goalFieldKeyTyped(evt); //事件处理函数
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent evt) {
// TODO Auto-generated method stub
}
});