📜  Java摇摆 |带示例的内部框架

📅  最后修改于: 2022-05-13 01:55:49.339000             🧑  作者: Mango

Java摇摆 |带示例的内部框架

JInternalFrame 是Java Swing 的一部分。 JInternalFrame 是一个容器,它提供了框架的许多功能,包括显示标题、打开、关闭、调整大小、支持菜单栏等。
JInternalFrame 的构造函数

  1. JInternalFrame() :创建一个新的不可关闭、不可调整大小、不可图标化、不可最大化且没有标题的 JInternalFrame
  2. JInternalFrame(String t) :创建一个新的不可关闭、不可调整大小、不可图标、不可最大化的 JInternalFrame,并指定标题
  3. JInternalFrame(String t, boolean resizable) :创建一个新的不可关闭、不可图标、不可最大化的 JInternalFrame,并指定了标题和可调整大小
  4. JInternalFrame(String t, boolean resizable, boolean closable) :创建一个新的不可图标化、不可最大化的 JInternalFrame,并指定了标题、可关闭性和可调整性
  5. JInternalFrame(String t, boolean resizable, boolean closable, boolean maximizable) :创建一个新的不可图标的 JInternalFrame,并指定了标题、可关闭性、可最大化性和可调整性
  6. JInternalFrame(String t, boolean resizable, boolean closable, boolean maximizable, boolean iconifiable) :创建一个新的 JInternalFrame 并指定标题、可关闭性、可最大化性、可图标化和可调整大小

常用方法

  1. setFrameIcon(Icon icon) :将框架的图标设置为指定的图像
  2. setLayout(LayoutManager manager) :将框架的布局设置为指定的布局管理器
  3. setTitle(String t) : 将框架的标题设置为指定的标题
  4. getTitle() :获取框架的标题
  5. reshape(int x, int y, int width, int height) :将框架调整为指定的宽度和高度以及指定的位置
  6. add(Component c) :将指定的组件添加到容器中。
  7. addImpl(Component c, Object co, int i) :添加指定的组件。
  8. addInternalFrameListener(InternalFrameListener l) :将指定的 InternalFrameListener 添加到列表中。
  9. createRootPane() :由构造函数调用以设置 JRootPane。
  10. dispose() :使这个内部框架不可见、未选中和关闭。
  11. fireInternalFrameEvent(int id) :触发内部框架事件。
  12. getAccessibleContext() :获取与此 JInternalFrame 关联的 AccessibleContext。
  13. getContentPane() :返回此内部框架的内容窗格。
  14. getDefaultCloseOperation() :返回用户在此内部框架上启动“关闭”时发生的默认操作。
  15. getDesktopIcon() :返回此 JInternalFrame 图标化时使用的 JDesktopIcon。
  16. getDesktopPane() :在祖先层次结构中搜索 JDesktop 实例的便捷方法。
  17. getFocusOwner() :如果此 JInternalFrame 处于活动状态,则返回具有焦点的子项。
  18. getFrameIcon() :返回在这个内部框架的标题栏中显示的图像
  19. getGlassPane() :返回此内部框架的玻璃窗格。
  20. getInternalFrameListeners() :返回使用 addInternalFrameListener 添加到此 JInternalFrame 的所有 InternalFrameListener 的数组
  21. getJMenuBar() :返回此 JInternalFrame 的当前 JMenuBar
  22. getLastCursor() :返回由 setCursor 方法设置的最后一个 Cursor
  23. getLayer() :获取该组件的图层属性的便捷方法。
  24. getLayeredPane() :返回此内部框架的分层窗格。
  25. getMostRecentFocusOwner() :返回此 JInternalFrame 的子组件,该子组件将在选择此 JInternalFrame 时接收焦点。
  26. getNormalBounds() :如果 JInternalFrame 未处于最大化状态,则返回 getBounds();否则,返回 JInternalFrame 将恢复到的边界。
  27. getRootPane() :返回此内部框架的 rootPane 对象。
  28. getUI() :返回呈现此组件的外观对象。
  29. getWarningString() :获取与此内部框架一起显示的警告字符串。
  30. isClosable() :返回此 JInternalFrame 是否可以通过某些用户操作关闭。
  31. isClosed() :返回此 JInternalFrame 当前是否已关闭。
  32. isIcon() :返回 JInternalFrame 当前是否已图标化。
  33. isMaximizable() :获取最大化属性的值。
  34. isMaximum() :返回 JInternalFrame 当前是否最大化。
  35. isResizable() :返回 JInternalFrame 是否可以调整大小。
  36. isSelected() :返回 JInternalFrame 是否是当前活动的框架。
  37. pack() :导致此 JInternalFrame 的组件以其首选大小布局。
  38. paintComponent(Graphics g) :被覆盖以允许在拖动内部框架时优化绘画。
  39. paramString() :返回此 JInternalFrame 的字符串表示形式。
  40. remove(Component c) :从容器中移除指定的组件。
  41. removeInternalFrameListener(InternalFrameListener l) :移除指定的内部帧监听器。
  42. setClosable(boolean b) :设置此 JInternalFrame 是否可以通过某些用户操作关闭。
  43. setContentPane(Container c) :设置此 JInternalFrame 的 contentPane 属性。
  44. setCursor(Cursor c) :将光标图像设置为指定的光标。
  45. setDefaultCloseOperation(int o) :设置当用户在这个内部框架上启动“关闭”时默认发生的操作。
  46. setDesktopIcon(JInternalFrame.JDesktopIcon d) :设置与此 JInternalFrame 关联的 JDesktopIcon。
  47. setGlassPane(Component g) :设置此 JInternalFrame 的 glassPane 属性。
  48. setIcon(boolean b) : 图标化或去图标化这个内部框架。
  49. setJMenuBar(JMenuBar m) :设置此 JInternalFrame 的 menuBar 属性。
  50. setIconifiable(boolean b) :设置 iconable 属性,该属性必须为 true,用户才能将 JInternalFrame 设为图标。
  51. setJMenuBar(JMenuBar m) :设置此 JInternalFrame 的 menuBar 属性。
  52. setLayer(int l) :设置该组件的图层属性的便捷方法。
  53. setLayer(Integer l) :设置该组件的图层属性的便捷方法。
  54. setLayeredPane(JLayeredPane l) :设置此 JInternalFrame 的 layeredPane 属性。
  55. setMaximizable(boolean b) :设置 maximizable 属性,该属性确定 JInternalFrame 是否可以通过某些用户操作最大化。
  56. setMaximum(boolean b) :最大化并恢复这个内部框架。
  57. setNormalBounds(Rectangle r) :设置此内部框架的法线边界。
  58. setResizable(boolean b) :设置 JInternalFrame 是否可以通过某些用户操作调整大小。
  59. setRootPane(JRootPane r) :设置此 JInternalFrame 的 rootPane 属性。
  60. setRootPaneCheckingEnabled(boolean e) : 设置调用 add 和 setLayout 是否转发到 contentPane。
  61. setSelected(boolean s) :选择或取消选择内部框架,如果它正在显示。
  62. setUI(InternalFrameUI ui) :设置此 JInternalFrame 的 UI 委托。
  63. show() :使内部框架可见。
  64. toBack() :将此内部帧发送到后面。
  65. toFront() :将此内部框架置于前面。
  66. updateUI() :来自 UIManager 的通知,表明外观已更改。

1. 程序创建一个简单的 JInternalFrame :

Java
// java Program to create a simple JInternalFrame
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
class solution extends JFrame {
 
    // frame
    static JFrame f;
 
    // label to display text
    static JLabel l;
 
    // main class
    public static void main(String[] args)
    {
        // create a new frame to
        f = new JFrame("frame");
 
        // create a internal frame
        JInternalFrame in = new JInternalFrame();
 
        // set the title of the frame
        in.setTitle("InternalFrame");
 
        // create a Button
        JButton b = new JButton("button");
 
        // create a label to display text
        l = new JLabel("This is a JInternal Frame  ");
 
        // create a panel
        JPanel p = new JPanel();
 
        // add label and button to panel
        p.add(l);
        p.add(b);
 
        // set visibility internal frame
        in.setVisible(true);
 
        // add panel to internal frame
        in.add(p);
 
        // add internal frame to frame
        f.add(in);
 
        // set the size of frame
        f.setSize(300, 300);
 
        f.show();
    }
}


Java
// java Program to create multiple internal frames
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
class solution extends JFrame {
 
    // frame
    static JFrame f;
 
    // label to display text
    static JLabel l, l1;
 
    // main class
    public static void main(String[] args)
    {
        // create a new frame
        f = new JFrame("frame");
 
        // set layout of frame
        f.setLayout(new FlowLayout());
 
        // create a internal frame
        JInternalFrame in = new JInternalFrame("frame 1", true, true, true, true);
 
        // create a internal frame
        JInternalFrame in1 = new JInternalFrame("frame 2", true, true, true, true);
 
        // create a Button
        JButton b = new JButton("button");
        JButton b1 = new JButton("button1");
 
        // create a label to display text
        l = new JLabel("This is a JInternal Frame no 1  ");
        l1 = new JLabel("This is a JInternal Frame no 2  ");
 
        // create a panel
        JPanel p = new JPanel();
        JPanel p1 = new JPanel();
 
        // add label and button to panel
        p.add(l);
        p.add(b);
        p1.add(l1);
        p1.add(b1);
 
        // set visibility internal frame
        in.setVisible(true);
        in1.setVisible(true);
 
        // add panel to internal frame
        in.add(p);
        in1.add(p1);
 
        // add internal frame to frame
        f.add(in);
        f.add(in1);
 
        // set the size of frame
        f.setSize(300, 300);
 
        f.show();
    }
}


Java
// java Program to create multiple frame and set icon to the frame
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
class solution extends JFrame {
 
    // frame
    static JFrame f;
 
    // label to display text
    static JLabel l, l1;
 
    // main class
    public static void main(String[] args)
    {
        // create a new frame
        f = new JFrame("frame");
 
        // set layout of frame
        f.setLayout(new FlowLayout());
 
        // create a internal frame
        JInternalFrame in = new JInternalFrame("frame 1",
                                 true, true, true, true);
 
        // create a internal frame
        JInternalFrame in1 = new JInternalFrame("frame 2",
                                   true, true, true, true);
 
        // set icon for internal frames
        in.setFrameIcon(new ImageIcon("f:/gfg.jpg"));
        in1.setFrameIcon(new ImageIcon("f:/gfg.jpg"));
 
        // create a Button
        JButton b = new JButton("button");
        JButton b1 = new JButton("button1");
 
        // create a label to display text
        l = new JLabel("This is a JInternal Frame no 1  ");
        l1 = new JLabel("This is a JInternal Frame no 2  ");
 
        // create a panel
        JPanel p = new JPanel();
        JPanel p1 = new JPanel();
 
        // add label and button to panel
        p.add(l);
        p.add(b);
        p1.add(l1);
        p1.add(b1);
 
        // set visibility internal frame
        in.setVisible(true);
        in1.setVisible(true);
 
        // add panel to internal frame
        in.add(p);
        in1.add(p1);
 
        // add internal frame to frame
        f.add(in);
        f.add(in1);
 
        // set the size of frame
        f.setSize(300, 300);
 
        f.show();
    }
}


输出 :

2.程序创建多个内部框架

Java

// java Program to create multiple internal frames
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
class solution extends JFrame {
 
    // frame
    static JFrame f;
 
    // label to display text
    static JLabel l, l1;
 
    // main class
    public static void main(String[] args)
    {
        // create a new frame
        f = new JFrame("frame");
 
        // set layout of frame
        f.setLayout(new FlowLayout());
 
        // create a internal frame
        JInternalFrame in = new JInternalFrame("frame 1", true, true, true, true);
 
        // create a internal frame
        JInternalFrame in1 = new JInternalFrame("frame 2", true, true, true, true);
 
        // create a Button
        JButton b = new JButton("button");
        JButton b1 = new JButton("button1");
 
        // create a label to display text
        l = new JLabel("This is a JInternal Frame no 1  ");
        l1 = new JLabel("This is a JInternal Frame no 2  ");
 
        // create a panel
        JPanel p = new JPanel();
        JPanel p1 = new JPanel();
 
        // add label and button to panel
        p.add(l);
        p.add(b);
        p1.add(l1);
        p1.add(b1);
 
        // set visibility internal frame
        in.setVisible(true);
        in1.setVisible(true);
 
        // add panel to internal frame
        in.add(p);
        in1.add(p1);
 
        // add internal frame to frame
        f.add(in);
        f.add(in1);
 
        // set the size of frame
        f.setSize(300, 300);
 
        f.show();
    }
}

输出 :

3.创建多个框架并为框架设置图标的程序

Java

// java Program to create multiple frame and set icon to the frame
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
class solution extends JFrame {
 
    // frame
    static JFrame f;
 
    // label to display text
    static JLabel l, l1;
 
    // main class
    public static void main(String[] args)
    {
        // create a new frame
        f = new JFrame("frame");
 
        // set layout of frame
        f.setLayout(new FlowLayout());
 
        // create a internal frame
        JInternalFrame in = new JInternalFrame("frame 1",
                                 true, true, true, true);
 
        // create a internal frame
        JInternalFrame in1 = new JInternalFrame("frame 2",
                                   true, true, true, true);
 
        // set icon for internal frames
        in.setFrameIcon(new ImageIcon("f:/gfg.jpg"));
        in1.setFrameIcon(new ImageIcon("f:/gfg.jpg"));
 
        // create a Button
        JButton b = new JButton("button");
        JButton b1 = new JButton("button1");
 
        // create a label to display text
        l = new JLabel("This is a JInternal Frame no 1  ");
        l1 = new JLabel("This is a JInternal Frame no 2  ");
 
        // create a panel
        JPanel p = new JPanel();
        JPanel p1 = new JPanel();
 
        // add label and button to panel
        p.add(l);
        p.add(b);
        p1.add(l1);
        p1.add(b1);
 
        // set visibility internal frame
        in.setVisible(true);
        in1.setVisible(true);
 
        // add panel to internal frame
        in.add(p);
        in1.add(p1);
 
        // add internal frame to frame
        f.add(in);
        f.add(in1);
 
        // set the size of frame
        f.setSize(300, 300);
 
        f.show();
    }
}

输出 :

注意:以上程序可能无法在在线编译器中运行,请使用离线 IDE