`
pengyu
  • 浏览: 29750 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

透明JDialog

阅读更多
import java.awt.BorderLayout;
import java.awt.Dialog;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.net.URL;
import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLEditorKit;

public class Ebook extends JDialog{
    private MyShow myshows;
    private JTextPane textpane;
    public Ebook(final MyShow myshows){
        super((Dialog)null, true);
        this.myshows = myshows;
        this.setUndecorated(true);
        extraInitComponents(true);
        initGUI();
       
    }
    private void initGUI(){
        setBak();
        this.getContentPane().setLayout(new BorderLayout());
        textpane = createHTMLPane();
        JScrollPane jsc = new JScrollPane(textpane);
        URL url = null;
        StringBuffer page = new StringBuffer();
        StringBuffer str = new StringBuffer();
        str.append("C:\\zh_CN");
        page.append("file:/");
        page.append(str);
        page.append(File.separator);
        page.append("ebook.htm");
        try {
            url = new URL(page.toString());
            textpane.setPage(url);
        } catch (Exception ex) {
        }
         JPanel centerPanel = new JPanel(new BorderLayout());

        centerPanel.setOpaque(false);
        centerPanel.add(jsc,BorderLayout.CENTER);
        centerPanel.setPreferredSize(new Dimension(50, 50));
        centerPanel.setMinimumSize(new Dimension(50, 50));
        centerPanel.setMaximumSize(new Dimension(50, 50));
        this.getContentPane().add(centerPanel,BorderLayout.CENTER);
        JPanel button = new JPanel(new FlowLayout(FlowLayout.RIGHT));
        JButton close = new JButton("close");
        close.setPreferredSize(new Dimension(75, 25));
        close.setMinimumSize(new Dimension(75, 25));
        close.setMaximumSize(new Dimension(75, 25));
        close.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                setVisible(false);
            }
        });

        button.add(close);
        button.add(Box.createHorizontalStrut(75));
        button.setOpaque(false);


        this.getContentPane().add(button,BorderLayout.SOUTH);
        this.getContentPane().add(Box.createVerticalStrut(80),BorderLayout.NORTH);
        this.getContentPane().add(Box.createHorizontalStrut(80),BorderLayout.WEST);
        this.getContentPane().add(Box.createHorizontalStrut(80),BorderLayout.EAST);
        ((JPanel) this.getContentPane()).setOpaque(false);
    }

    public void ShowUI(){
        setVisible(true);
    }

    private void setBak() {
        ((JPanel) this.getContentPane()).setOpaque(false);
        StringBuffer imagestr = new StringBuffer();
        imagestr.append("C:\\back.PNG");
        final ImageIcon img = new ImageIcon(imagestr.toString());
        JLabel background = new JLabel(img){
            @Override
            protected void paintComponent(Graphics g) {
                super.paintComponent(g);
                g.drawImage(img.getImage(), 0,0,img.getIconWidth(),img.getIconHeight(),null);
                g.dispose();
            }
        };
        getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));
        background.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
        setSize(400, 300);
    }

     public void extraInitComponents(boolean ifFirstInit) {
            setLocationRelativeTo(myshows);
            setAlwaysOnTop(true);
            com.sun.awt.AWTUtilities.setWindowOpaque(this, false);
    }

     public static JTextPane createHTMLPane() {
        JTextPane textPane;
        textPane = new JTextPane();
        HTMLEditorKit kit = new HTMLEditorKit();//kit s ur HTMLEditorKit
        HTMLDocument doc = (HTMLDocument) (kit.createDefaultDocument());
        textPane.setEditorKit(kit);//'this' is ur JTextPane object
        textPane.setDocument(doc);
        textPane.setEditable(false);
        return textPane;
    }
}
分享到:
评论

相关推荐

    jDialog是一款轻量级的jQuery模态对话框插件

    - **淡入淡出**:对话框以平滑的透明度变化进入和退出视图,给人一种温和而不突兀的感觉。 - **顶部滑出**:对话框从屏幕顶部以滑动方式出现,常用于通知或提示信息。 - **水平滑动**:左右滑动的效果,适用于展示更...

    jquery.jDialog

    6. **可配置选项**:包括但不限于宽度、高度、位置、背景透明度、是否可关闭等,开发者可根据需求调整。 ### 二、使用步骤 1. **引入依赖**:首先需要引入jQuery库(在这个例子中是`jquery132.js`),然后引入`...

    JFrame实现JDialog的效果,实现模式窗口

    在Java Swing库中,`JFrame`和`JDialog`是两种主要的顶级窗口组件,它们用于构建用户界面。`JFrame`通常用作应用程序的主要窗口,而`JDialog`则用于创建弹出式对话框,可以是模态或非模态的。本教程将深入探讨如何...

    透明窗体,很有意思的可以调节的透明窗体,系统开发很实用东东

    在Java AWT中,`java.awt.Frame`或`java.awt.Dialog`类是用于创建基本窗口的主要类,而Swing则提供了更为高级的`javax.swing.JFrame`和`javax.swing.JDialog`,它们支持更多的定制功能,包括透明性。 透明窗体的...

    带4种特效的轻量级jQuery模态对话框插件

    1. **淡入淡出效果**:这种效果是通过元素的透明度变化来实现的,使得对话框在出现和消失时平滑过渡,给人以优雅的感觉。 2. **顶部滑出效果**:对话框从页面顶部以滑动的方式进入视野,提供了一种动态的展示方式,...

    calendar源码java-JOVCalendar:Java中的免费JDialog,用于创建日历和选择日期。完全免费和开放源代码,可在您的项

    这通常意味着项目具有较高的透明度和可定制性,对于学习、研究或改进现有代码的开发者来说极具价值。 **详细知识点:** 1. **Java GUI编程**:JOVCalendar是基于Java Swing库构建的,Swing提供了一组丰富的组件,...

    弹框 遮罩层 alert提示 样式

    jDialog通常提供更丰富的功能和更美观的样式,相比原生的JavaScript弹框函数,它允许开发者自定义弹框的大小、位置、颜色、按钮等属性,甚至可以添加复杂的交互逻辑。 总的来说,弹框、遮罩层和alert提示在网页开发...

    java编写的金山词霸

    JDialog jdmean = new JDialog(); JTextField jtfWord = new JTextField(""); JTextArea jtamean = new JTextArea(""); ``` 这里创建了一个主窗口`jf`和一个对话框`jdmean`,并分别添加了一个文本输入框`jtfWord`和...

    改变JAVA窗体属性的操作方法

    总结来说,改变JAVA窗体属性涉及到使用JFrame或JDialog类创建窗体,然后通过`setOpacity()`方法调整透明度。通过添加JSlider组件,用户可以实时改变窗体的透明状态。这个过程不仅增强了用户的交互体验,也展示了Java...

    10 改变对话框的背景色.rar_背景色

    JDialog dialog = new JDialog(); JPanel panel = new JPanel(); panel.setBackground(Color.PINK); // 粉色背景 dialog.setContentPane(panel); ``` 8. **JavaScript(HTML DOM)** 在网页应用中,如果使用...

    java程序 病人病例管理系统

    一个java工程,实现病人病例个管理,病例的增删改功能,还有便捷查找。简单的java界面设计,png透明图片的使用,以及背景图的实现,Jtable的使用,Jframe与JDialog之间的数据交换,是一个学习java的好例子

    SWING_swing_JavaSwing_

    8. **组件的透明度**: Swing允许设置组件的透明度,这为创建更具吸引力的用户界面提供了可能性。 9. **JFrame和JDialog**: JFrame是Swing中最基本的顶级容器,用于承载其他组件并构成一个窗口应用。而JDialog则用来...

    Java个性桌面应用.pdf

    `JSlider`(`jslider`)提供了滑动条功能,允许用户通过滑动来调整值,例如,可以用于设置透明度或者字体大小。滑动条的范围由1到100定义。 此外,应用还包含了一些其他组件,如`JButton`(`jbutton` 和 `jbutton2`...

    FilthyRichClients.pdf

    - **概念**:`GlassPane`是Swing中一个特殊类型的组件,它可以被设置为任何`JFrame`或`JDialog`的顶层组件。通常情况下,它是透明的,并且位于所有其他组件之上。 - **用途**:利用`GlassPane`可以实现全局的遮罩层...

    多样式frame框架控件 多样式frame框架控件

    4. **透明度和形状**:在支持的平台上,`JFrame`允许设置窗口的透明度,甚至可以定义自定义形状,这可以通过`setOpacity()`和`setShape()`方法实现,为应用带来独特的视觉效果。 5. **事件处理**:`Frame`可以监听...

    模仿Eclipse的闪屏

    例如,对于Java桌面应用,你可以创建一个JFrame或JDialog作为闪屏窗口。 2. 设置闪屏窗口的背景图为你设计的图片,确保图片填充整个窗口,并调整大小以适应不同屏幕。 3. 添加适当的动画效果,比如淡入淡出、滑动...

    java实现桌面精灵(java源代码)(一个日历)

    Java Swing提供了`JOptionPane`类,可以创建简单的提示对话框,但若要实现分层显示,可能需要自定义组件,例如使用`JDialog`或`JWindow`。这需要考虑窗口的位置、大小、透明度以及关闭机制,确保提示信息不会干扰...

    popup window

    对于Java开发者,可以使用Java Swing或JavaFX中的JOptionPane类来创建简单的Popup Window,或者自定义JFrame或JDialog来构建更复杂的弹窗。在Android开发中,PopupWindow类允许开发者创建可定制的浮动视图,而iOS...

    在对话框中点击按钮弹出另外一个对话框

    在Java Swing中,我们可以使用`JDialog`类创建模态对话框,或者在Android中使用`AlertDialog.Builder`。 3. **定制对话框内容**:对话框的内容可以是文本、输入框、复选框、单选按钮、列表等。这些元素可以通过布局...

    Java调色板面板源代码

    3. **颜色处理**:`Color`类是处理颜色的核心,可以创建新的颜色,也可以通过`getRed()`,`getGreen()`,`getBlue()`方法获取颜色的RGB分量,或者通过`getAlpha()`获取透明度。 4. **事件监听**:为了响应用户的...

Global site tag (gtag.js) - Google Analytics