java中怎么创建不可调整大小的不可关闭的不可最大化的不可图标化的没有标题的窗口

java中怎么创建不可调整大小的不可关闭的不可最大化的不可图标化的没有标题的窗口,第1张

不可调整大小:
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);
}
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13385234.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-26
下一篇 2023-07-26

发表评论

登录后才能评论

评论列表(0条)

保存