可以更好的对组内控件进行控制,比如单个命令隐藏或显示一组控制;设置组背景图;控制组内控件整体移动等等。
类似于html中div。
延展阅读:
高级编程c#中Panel控件用于为其他控件提供可识别的分组。通常,使用面板按功能细分窗体。例如,可能有一个订单窗体,它指定邮寄选项(如使用哪一类通营承运商)。将所有选项分组在一个面板中可向用户提供逻辑可视提示。在设计时所有控件都可以轻松移动 -- 当移动 Panel 控件时,它包含的所有控件也将移动。
首先将JPanel的容器的布局管理器设为null 即绝对布局然后移动的时候只需要修改JPanel的bounds就行了
附一个简单的示例代码
import java.awt.*
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import javax.swing.*
/**
*
* @author Jeky
*/
public class MainFrame extends JFrame {
private JPanel movePanel
private JButton button
public MainFrame() {
movePanel = new JPanel()
movePanel.setBorder(BorderFactory.createRaisedBevelBorder())
movePanel.setBounds(new Rectangle(50, 50, 50, 50))
button = new JButton("移动")
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Rectangle bounds = movePanel.getBounds()
Point location = bounds.getLocation()
location.x+=5
location.y+=5
bounds.setLocation(location)
movePanel.setBounds(bounds)
}
})
JPanel center = new JPanel()
center.setLayout(null)
center.add(movePanel)
JPanel south = new JPanel()
south.setLayout(new FlowLayout(FlowLayout.CENTER))
south.add(button)
this.getContentPane().add(center,BorderLayout.CENTER)
this.getContentPane().add(south,BorderLayout.SOUTH)
this.setSize(300, 300)
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
this.setVisible(true)
}
public static void main(String[] args) {
new MainFrame()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)