
楼主是想让控件随frame大小变化
首先,建一个frame文件(Application应用程序),在Design中将this中的layout设置为null(不要布局器);
第二,在组件盘内点选Swing Container页签,选取Jpanel图标,在this上方拖拽一块区域,同样的方法在下方也拖拽一块区域,为了方便区分,将上方的Jpanel1区域设置为红色,下方的Jpanel2区域设置为橙色。将Jpanel1和Jpanel2的layout设置为null(不要布局器)。
第三,在Jpanel中放入一个Jlable标题栏,JTextField1文本框和Jbutton按钮,在组件盘内点选Swing 页签,选取JLable图标在Jpanel1的左边画一个标题栏,将text改为“请输入查询条件”,再选取JtextField在Jpanel1的中间画一个文本框,将text改为空,最后选取Jbutton在Jpanel1又边画一个按钮将text改为“查询”。在Jpanel2中画三个Jbutton按钮,将text分别设为“增加”、“删除”、“修改”。
第四,在this的中间建一个表格用来显示数据库数据的内容,在Swing Container页签,选取jScrollPane图标,在this的中间拖拽一个大的区域,接着在组件盘内点选Swing 页签,选取JTable图标,将Jtable加入到jScrollPane中。
这样我的界面就做好了,但这个界面不能随窗口自动调整大小。下面编程实现手动布局,使各区域能随窗口自动调整大小。
先用鼠标选中this窗体,再选择右边的事件Events中的componentResized,双击鼠标就进到void this_componentResized(ComponentEvent e) {}中,在{}中写入下列代码:
//设置jPanel1的起点坐标
jPanel1setLocation(0,0);
//设置jPanel1的高度和宽度
jPanel1setSize(thisgetWidth(),jPanel1getHeight());
//设置jPanel2的起点坐标(37是标题栏的高度)
jPanel2setLocation(0,thisgetHeight()-jPanel2getHeight()-37);
//设置jPanel1的高度和宽度
jPanel2setSize(thisgetWidth(),jPanel2getHeight());
//设置jScrollPanel的起点坐标
jScrollPane1setLocation(0,jPanel1getHeight());
//设置jScrollPanel的高度和宽度
jScrollPane1setSize(thisgetWidth(),jPanel2getY()-jPanel1getHeight());
本程序只调整了Jpanel1、Jpanel2和JScrollPane1随窗口变化,同样的方法,可以使按钮、文本框等一起随窗口变化。
程序在“查询”按钮事件中模拟从数据库中取数据,并显示在表格中。为了简洁,程序没有对输入条件、增加、删除、修改等进行处理。
程序源代码:
package src
import javaxswing;
import javaawt;
import javaawtevent;
import javautilVector;
import javaxswingtableDefaultTableModel;
public class Frame1 extends JFrame {
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JScrollPane jScrollPane1 = new JScrollPane();
JTable jTable1 = new JTable();
JLabel jLabel1 = new JLabel();
JTextField jTextField1 = new JTextField();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
JButton jButton4 = new JButton();
public Frame1() {
try {
jbInit();
}
catch(Exception e) {
eprintStackTrace();
}
}
public static void main(String[] args) {
Frame1 frame1 = new Frame1();
//定义显示窗体的大小显示窗口
frame1setSize(400, 350);
frame1show();
//激活“查询”按钮事件
frame1jButton1doClick();
}
private void jbInit() throws Exception {
thisgetContentPane()setLayout(null);
jPanel1setBackground(Colorred);
jPanel1setBounds(new Rectangle(43, 15, 297, 48));
jPanel1setLayout(null);
jPanel2setBounds(new Rectangle(50, 232, 297, 48));
jPanel2setLayout(null);
jPanel2setBackground(Colororange);
jScrollPane1getViewport()setBackground(Colorpink);
jScrollPane1setBounds(new Rectangle(53, 74, 287, 138));
jLabel1setFont(new javaawtFont("Dialog", 0, 15));
jLabel1setText("输入查内容");
jLabel1setBounds(new Rectangle(44, 12, 80, 27));
jTextField1setText("");
jTextField1setBounds(new Rectangle(125, 14, 70, 22));
jButton1setBounds(new Rectangle(221, 12, 61, 24));
jButton1setFont(new javaawtFont("Dialog", 0, 13));
jButton1setText("查询");
jButton1addActionListener(new Frame1_jButton1_actionAdapter(this));
jButton2setBounds(new Rectangle(13, 14, 66, 27));
jButton2setFont(new javaawtFont("Dialog", 0, 13));
jButton2setText("增加");
jButton3setText("删除");
jButton3setBounds(new Rectangle(115, 14, 66, 27));
jButton3setFont(new javaawtFont("Dialog", 0, 13));
jButton4setText("修改");
jButton4setBounds(new Rectangle(217, 14, 66, 27));
jButton4setFont(new javaawtFont("Dialog", 0, 13));
thisaddHierarchyBoundsListener(new Frame1_this_hierarchyBoundsAdapter(this));
thisaddComponentListener(new Frame1_this_componentAdapter(this));
thisgetContentPane()add(jPanel1, null);
jPanel1add(jTextField1, null);
jPanel1add(jButton1, null);
jPanel1add(jLabel1, null);
thisgetContentPane()add(jPanel2, null);
jPanel2add(jButton3, null);
jPanel2add(jButton4, null);
jPanel2add(jButton2, null);
thisgetContentPane()add(jScrollPane1, null);
jScrollPane1getViewport()add(jTable1, null);
}
void this_componentResized(ComponentEvent e) {
//设置jPanel1的起点坐标
jPanel1setLocation(0,0);
//设置jPanel1的高度和宽度
jPanel1setSize(thisgetWidth(),jPanel1getHeight());
//设置jPanel2的起点坐标(37是标题栏的高度)
jPanel2setLocation(0,thisgetHeight()-jPanel2getHeight()-37);
//设置jPanel2的高度和宽度
jPanel2setSize(thisgetWidth(),jPanel2getHeight());
//设置jScrollPanel的起点坐标
jScrollPane1setLocation(0,jPanel1getHeight());
//设置jScrollPanel的高度和宽度
jScrollPane1setSize(thisgetWidth(),jPanel2getY()-jPanel1getHeight());
}
void jButton1_actionPerformed(ActionEvent e) {
// “查询”按钮事件,模拟从数据库中取数据并显示在表格中
try
{
Vector vcol = new Vector(); //列名
Vector vrow = new Vector(); //内容
//用一个for循环来模拟数据库的内容
for (int col=1;col<31;col++) {
vcoladdElement("列"+col);
}
for (int row=1;row<101;row++) {
Vector vr1 = new Vector();
for (int col=1;col<31;col++) {
vr1addElement(row+"/"+col);
}
vrowaddElement(vr1);
}
DefaultTableModel dtm=new DefaultTableModel(vrow,vcol);
jTable1 = new JTable(vrow,vcol);
//滚动条设置左右滚
jTable1setAutoResizeMode(JTableAUTO_RESIZE_OFF);
//在滚动条中放入表
thisjScrollPane1getViewport()add(jTable1, null);
}
catch(Exception ex)
{
Systemoutprintln("错误:" + ex);
}
}
}
class Frame1_this_hierarchyBoundsAdapter extends javaawteventHierarchyBoundsAdapter {
Frame1 adaptee;
Frame1_this_hierarchyBoundsAdapter(Frame1 adaptee) {
thisadaptee = adaptee;
}
public void ancestorResized(HierarchyEvent e) {
}
}
class Frame1_this_componentAdapter extends javaawteventComponentAdapter {
Frame1 adaptee;
Frame1_this_componentAdapter(Frame1 adaptee) {
thisadaptee = adaptee;
}
public void componentResized(ComponentEvent e) {
adapteethis_componentResized(e);
}
}
class Frame1_jButton1_actionAdapter implements javaawteventActionListener {
Frame1 adaptee;
Frame1_jButton1_actionAdapter(Frame1 adaptee) {
thisadaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adapteejButton1_actionPerformed(e);
}
}
JDialog
public JDialog(Frame owner,
boolean modal)创建一个具有指定所有者 Frame、模式和空标题的对话框。如果 owner 为 null,则一个共享的、隐藏的窗体将被设置为该对话框的所有者。
此构造方法将该组件的语言环境属性设置为 JComponentgetDefaultLocale 所返回的值。
注:此构造方法不允许创建没有所有者的 JDialog。要创建没有所有者的 JDialog,必须使用带有 null 参数的 JDialog(Window) 或 JDialog(Dialog) 构造方法。
参数:
owner - 显示该对话框的 Frame
modal - 指定对话框在显示时是否阻塞用户向其他顶层窗口输入。如果为 true,则模式类型属性被设置为 DEFAULT_MODALITY_TYPE;否则对话框是无模式
以上就是关于java如何获取DOS窗口命令输出全部的内容,包括:java如何获取DOS窗口命令输出、java怎么做窗体、Java:在主窗体中调用另一窗体,我要实现那个窗体显示在主窗体里面,请等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)