请教一个SWING中JOPTIONPANE和JDIALOG的问题

zaishiyuxia 2009-08-31 01:27:50
我现在想点击一个按钮,然后屏幕中央就跳出一个矩形框,类似JOPTIONPANE这样的。然后在矩形框里面可以添加一些JTEXTFIELD,JLABEL,JBUTTON之类的东西,类似JPANEL的功能。但是JOPTIONPANE好像只能显示一条MESSAGE吧。。好像不能在里面添加一些JTEXTFIELD,JLABEL之类的东西。。
请问高手我应该如何操作呢。。
谢谢!
...全文
62 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hxbot 2009-08-31
  • 打赏
  • 举报
回复
又是蛋贴,枉我深夜一片真心诚意。最起码现在已是深夜。


废话少说。直接上代码


//文件名保存为:TestCenteredFrame.java
//运行命令:java TestCenteredFrame

import java.awt.*;
import javax.swing.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.border.TitledBorder;;

public class TestCenteredFrame {
public static void main(String[] args) {
new TestCenteredFrame().start();

}

public void start() {
new MyFrame();
}
}

class MyFrame extends JFrame {
JButton jb = new JButton();

public MyFrame() {
this.setSize(300,400);
this.setLayout(new BorderLayout());
this.getContentPane().add(jb, BorderLayout.CENTER);
this.jb.addActionListener(new ActionJbutton(this));

this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);

}

public void fun() {

//关键的是这一步骤
InsertInfo i = new InsertInfo();
}
}

class ActionJbutton implements ActionListener{
private MyFrame frame ;
public ActionJbutton(MyFrame frame) {
this.frame = frame;
}
public void actionPerformed(ActionEvent e) {
frame.fun();
}
}



class InsertInfo extends JDialog {
JPanel panel1 = new JPanel();
JLabel BarCode = new JLabel();
JTextField BarCodeBox = new JTextField();
JLabel GoodsName = new JLabel();
JTextField GoodsNameBox = new JTextField();

JLabel PurchaseScalar = new JLabel();
JTextField PurchaseScalarBox = new JTextField();
JLabel PurchasePrice = new JLabel();
JTextField PurchasePriceBox = new JTextField();
JLabel Unit = new JLabel();
JTextField UnitBox = new JTextField();
JLabel EnterFiag = new JLabel();
JTextField EnterFiagBox = new JTextField();
JLabel back = new JLabel();
JButton post = new JButton();
JButton reset = new JButton();
JButton exit = new JButton();
JLabel FeederName = new JLabel();
JTextField FeederNameBxo = new JTextField();

private int row ;
private int select ;
JLabel jLabel1 = new JLabel();
JScrollPane jScrollPane1 = new JScrollPane();
JTextArea Remark = new JTextArea();

public InsertInfo(){//select 1

try {
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
jbInit();
pack();
} catch (Exception exception) {
exception.printStackTrace();
}
}

private void jbInit() throws Exception {
if(select == 0) {
this.setTitle("进货信息录入");
post.setText("确认");
}else {
this.setTitle("修改信息");
post.setText("修改");
//调用赋值方法
}

this.getRootPane().setDefaultButton(post);//返回此对话框的 JRootPane 对象。
this.setModal(true);//指定此 dialog 是否应该是有模式的。
this.setSize(320, 450);
this.setLocationRelativeTo(null);//面板放置中间
panel1.setLayout(null);
BarCode.setText("商品条码:");
BarCode.setBounds(new Rectangle(24, 30, 77, 20));
BarCodeBox.setBounds(new Rectangle(102, 30, 178, 22));
GoodsName.setText("商品名称:");
GoodsName.setBounds(new Rectangle(24, 63, 77, 20));
GoodsNameBox.setBounds(new Rectangle(102, 63, 178, 22));
FeederName.setText("供应商名称:");
FeederName.setBounds(new Rectangle(24, 93, 77, 20));
FeederNameBxo.setBounds(new Rectangle(102, 93, 178, 22));
PurchaseScalar.setText("购入数量:");
PurchaseScalar.setBounds(new Rectangle(24, 123, 77, 20));
PurchaseScalarBox.setBounds(new Rectangle(102, 123, 178, 22));
PurchasePrice.setText("进价:");
PurchasePrice.setBounds(new Rectangle(24, 153, 77, 20));
PurchasePriceBox.setBounds(new Rectangle(102, 153, 178, 22));
Unit.setText("商品计量单位:");
Unit.setBounds(new Rectangle(9, 184, 92, 20));
UnitBox.setBounds(new Rectangle(102, 183, 178, 22));
EnterFiag.setText("是否已完成交易:");
EnterFiag.setBounds(new Rectangle(11, 214, 90, 20));
EnterFiagBox.setBounds(new Rectangle(102, 213, 178, 22));
back.setBorder(new TitledBorder(null, "进货信息录入"));//创建具有指定边框和标题的 TitledBorder 实例。
back.setBounds(new Rectangle( 0, 13, 303, 340));//设置那根虚线
post.setBounds(new Rectangle(21, 297, 77, 24));
reset.setBounds(new Rectangle(114, 297, 77, 24));
reset.setText("重置");
exit.setBounds(new Rectangle(207, 297, 77, 24));
exit.setText("取消");
jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
jLabel1.setText("备注:");
jLabel1.setBounds(new Rectangle(12, 246, 88, 21));
jScrollPane1.setBounds(new Rectangle(104, 245, 175, 39));
panel1.add(BarCodeBox);
panel1.add(BarCode);
panel1.add(PurchaseScalarBox);
panel1.add(GoodsName);
panel1.add(GoodsNameBox);
panel1.add(FeederName);
panel1.add(PurchaseScalar);
panel1.add(PurchasePriceBox);
panel1.add(PurchasePrice);
panel1.add(UnitBox);
panel1.add(EnterFiagBox);
panel1.add(FeederNameBxo);
panel1.add(post);
panel1.add(reset);
panel1.add(exit);
panel1.add(Unit);
panel1.add(EnterFiag);
panel1.add(jLabel1);
panel1.add(jScrollPane1);
jScrollPane1.getViewport().add(Remark);
panel1.add(back);
this.getContentPane().add(panel1, java.awt.BorderLayout.CENTER);
this.setVisible(true);
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧