public void setResizable(boolean resizable)设置此 frame 是否可由用户调整大小。
没有标题可以new Frame("");
不可关闭:
Frame默认不可关闭,即使关闭了,内存中程序仍在运行。你不是说界面不可关闭吧?import javaxswing;
import javaawt;
import javaawtevent;
/
@author Hardneedl
/
final class FrameActionDemo extends JFrame {
public String getTitle() {return "FrameActionDemo";}
static private final Dimension size = new Dimension(600,400);
public Dimension getPreferredSize() {return size;}
public Dimension getMaximumSize() {return size;}
public Dimension getMinimumSize() {return size;}
public Dimension getSize(){return size;}
private class SampleDialog extends JDialog {
private final Dimension DIALOG_SIZE=new Dimension(100,140);
public String getTitle() {return "sample dialog";}
public Dimension getPreferredSize() {return DIALOG_SIZE;}
public Dimension getMinimumSize() {return DIALOG_SIZE;}
public Dimension getSize() {return DIALOG_SIZE;}
public void setVisible(boolean b) {
supersetVisible(b);
if(b)setSize(getPreferredSize());
}
}
private class OpenDialogAction extends AbstractAction{
private JDialog dialog;
private OpenDialogAction() {
super("Open dialog ");
}
public void actionPerformed(ActionEvent e) {
if (dialog==null) {
dialog = new SampleDialog();
dialogaddWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
Systemoutprintln("executed after dialog has been closed");
}
});
}
dialogsetVisible(true);
}
}
FrameActionDemo() throws HeadlessException {
init();
attachListeners();
doLay();
}
private void init(){
}
private void attachListeners(){
setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
}
private void doLay(){
Container container = getContentPane();
containeradd(new JButton(new OpenDialogAction()),BorderLayoutNORTH);
pack();
setVisible(true);
}
public static void main(Stringargs) {
SystemsetProperty("swingdefaultlaf","comsunjavaswingplafwindowsWindowsLookAndFeel");
SwingUtilitiesinvokeLater(
new Runnable(){
public void run() {
new FrameActionDemo();
}
}
);
}
}我这有一个差不多一样的,带详细注释,是别一个程序,希望对你有用,代码如下所示。
import javaxswing;
import javaawt;
import javaawtevent;
public class colorChange extends JFrame
{ JButton jbutton; //定义按钮
Container content; //定义容器窗口
public colorChange(){
content=getContentPane(); //获取当前窗口的内容窗口
contentsetLayout(new FlowLayout());//设置当前的布局方式为流式布局
contentsetBackground(ColorGREEN); //设置当前窗口的背景颜色
jbutton=new JButton("改变窗口颜色"); //创建一个按钮
jbuttonsetBounds(20,20,100, 100);
jbuttonaddActionListener(new CChange()); //为按钮添加事件
contentadd(jbutton); //将按钮添加到内容窗口上
setTitle("单击事件测试"); //设置窗口标题
setSize(300,300); //设置窗口显示尺寸
setVisible(true); //设置窗口是否可见(true可见,false不可见)
}
class CChange implements ActionListener{
//CChange类继承按钮事件ActionEvent的ActionListener监听器接口。
public void actionPerformed(ActionEvent e){ //事件的默认方法
contentsetBackground(Colorblue); //改变当前窗口的背景颜色
setSize(400,300); //设置当前窗口的大小
}
}
public static void main(String[] args)
{
new colorChange(); //创建一个实例化对象
}
}
JDialog添加单选框, 和 JFrame,JPanel等容器 添加单选框是一样的
步骤:
创建单选按钮
并把相关的单选按钮都添加到ButtonGroup里,
然后把单选按钮添加到JDialog里
效果图
参考代码
import javaawt;import javaawtevent;
import javautilEnumeration;
import javaxswing;
public class MyTest {// 测试类
public static void main(String[] args) {
JDialog jd = new JDialog();
jdsetTitle("兴趣选择");
jdsetModal(true);
JPanel jp = new JPanel();// 流式布局
JLabel jl = new JLabel("兴趣[单选]");
ButtonGroup bg = new ButtonGroup();
JRadioButton jrb1 = new JRadioButton("跑步");
jrb1setSelected(true);//默认选择此选项
JRadioButton jrb2 = new JRadioButton("唱歌");
JRadioButton jrb3 = new JRadioButton("跳舞");
bgadd(jrb1);//把单选按钮都加入到ButtonGroup 才能实现单选的效果
bgadd(jrb2);
bgadd(jrb3);
JButton jb = new JButton("确定");
jbaddActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Enumeration<AbstractButton> btns= bggetElements();
while(btnshasMoreElements()){
JRadioButton jr = (JRadioButton) btnsnextElement();
if(jrisSelected()) {
JOptionPaneshowMessageDialog(null, "兴趣是:"+jrgetText());
}
}
}
});
jpadd(jl);
jpadd(jrb1);
jpadd(jrb2);
jpadd(jrb3);
jpadd(jb);
jdadd(jp);
jdsetLayout(new FlowLayout());
jdsetSize(320, 100);// 大小
jdsetLocationRelativeTo(null);// 居中
jdsetVisible(true);
jdsetDefaultCloseOperation(JDialogDISPOSE_ON_CLOSE);
}
}CMyTestDlg pDlg;
pDlg=new CMyTestDlg();
if (pDlg!=NULL)
{
pDlg->Create(IDD_DIALOG1,this);
pDlg->ShowWindow(SW_SHOW);
}
else
AfxMessageBox("创建失败");
另外,站长团上有产品团购,便宜有保证
父窗体不可点击,即模态窗口 Swingd出(模态)窗口, 有两种方案可以实现
第一:JOptionPane 来d出窗口
优点: 实现简单, 可以来d出简单的提示信息等
缺点:自由度不高,复杂的窗体难实现
第二:JDialong 来d出窗口
jdialongsetModal(true);//设置为模态窗口,父窗口就不可点击了优点: 自由度高, 可以实现很复杂的d窗
缺点:代码量稍微较多
参考代码和注释如下
import javaawt;import javaxswing;
import javaawtevent;
//Java8版本测试通过
//DemoFrame 继承自 JFrame
public class DemoFrame extends JFrame{
JButton jb1,jb2;// 1个按钮
public DemoFrame() {
jb1 = new JButton("d窗一");
jb2 = new JButton("d窗二");
JPanel jp = new JPanel(); //创建面板
jpadd(jb1);jpadd(jb2);
thisadd(jp);//把面板添加到窗口
//d窗1
jb1addActionListener(e->{
JOptionPaneshowMessageDialog(this, "利用JOptionPaned窗简单窗口", "d窗1", JOptionPaneINFORMATION_MESSAGE);
});
//d窗2
MyDialog md=new MyDialog(this);
jb2addActionListener(e->{
mdsetVisible(true);
});
//窗体部分的设置
setTitle("父窗口");//设置标题
setSize(320, 300); // 设置窗口大小
setLocationRelativeTo(null); //设置窗口在屏幕的中央
setDefaultCloseOperation(EXIT_ON_CLOSE);//点击关闭按钮时退出
}
//main方法
public static void main(String[] args) {
EventQueueinvokeLater(()->new DemoFrame()setVisible(true));//创建窗口并设置可见
}
}
//自定义d出窗口类
class MyDialog extends JDialog{
public MyDialog(DemoFrame frame) {
super(frame);//给d窗指定父窗口this
setTitle("d窗2");
setModal(true);//!!! 设置为模态窗口,父窗口不能被点击
setSize(170,92);
setLocationRelativeTo(null);
setDefaultCloseOperation(JDialogDISPOSE_ON_CLOSE);//点击关闭按钮时销毁d窗
//JDialog作为d窗 有很大的自由度, 可以像JFrame一样添加各种组件
JLabel jl = new JLabel("利用JDialog 来作为d窗");
add(jl);
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)