Java摇摆 |带示例的内部框架
JInternalFrame 是Java Swing 的一部分。 JInternalFrame 是一个容器,它提供了框架的许多功能,包括显示标题、打开、关闭、调整大小、支持菜单栏等。
JInternalFrame 的构造函数
- JInternalFrame() :创建一个新的不可关闭、不可调整大小、不可图标化、不可最大化且没有标题的 JInternalFrame
- JInternalFrame(String t) :创建一个新的不可关闭、不可调整大小、不可图标、不可最大化的 JInternalFrame,并指定标题
- JInternalFrame(String t, boolean resizable) :创建一个新的不可关闭、不可图标、不可最大化的 JInternalFrame,并指定了标题和可调整大小
- JInternalFrame(String t, boolean resizable, boolean closable) :创建一个新的不可图标化、不可最大化的 JInternalFrame,并指定了标题、可关闭性和可调整性
- JInternalFrame(String t, boolean resizable, boolean closable, boolean maximizable) :创建一个新的不可图标的 JInternalFrame,并指定了标题、可关闭性、可最大化性和可调整性
- JInternalFrame(String t, boolean resizable, boolean closable, boolean maximizable, boolean iconifiable) :创建一个新的 JInternalFrame 并指定标题、可关闭性、可最大化性、可图标化和可调整大小
常用方法
- setFrameIcon(Icon icon) :将框架的图标设置为指定的图像
- setLayout(LayoutManager manager) :将框架的布局设置为指定的布局管理器
- setTitle(String t) : 将框架的标题设置为指定的标题
- getTitle() :获取框架的标题
- reshape(int x, int y, int width, int height) :将框架调整为指定的宽度和高度以及指定的位置
- add(Component c) :将指定的组件添加到容器中。
- addImpl(Component c, Object co, int i) :添加指定的组件。
- addInternalFrameListener(InternalFrameListener l) :将指定的 InternalFrameListener 添加到列表中。
- createRootPane() :由构造函数调用以设置 JRootPane。
- dispose() :使这个内部框架不可见、未选中和关闭。
- fireInternalFrameEvent(int id) :触发内部框架事件。
- getAccessibleContext() :获取与此 JInternalFrame 关联的 AccessibleContext。
- getContentPane() :返回此内部框架的内容窗格。
- getDefaultCloseOperation() :返回用户在此内部框架上启动“关闭”时发生的默认操作。
- getDesktopIcon() :返回此 JInternalFrame 图标化时使用的 JDesktopIcon。
- getDesktopPane() :在祖先层次结构中搜索 JDesktop 实例的便捷方法。
- getFocusOwner() :如果此 JInternalFrame 处于活动状态,则返回具有焦点的子项。
- getFrameIcon() :返回在这个内部框架的标题栏中显示的图像
- getGlassPane() :返回此内部框架的玻璃窗格。
- getInternalFrameListeners() :返回使用 addInternalFrameListener 添加到此 JInternalFrame 的所有 InternalFrameListener 的数组
- getJMenuBar() :返回此 JInternalFrame 的当前 JMenuBar
- getLastCursor() :返回由 setCursor 方法设置的最后一个 Cursor
- getLayer() :获取该组件的图层属性的便捷方法。
- getLayeredPane() :返回此内部框架的分层窗格。
- getMostRecentFocusOwner() :返回此 JInternalFrame 的子组件,该子组件将在选择此 JInternalFrame 时接收焦点。
- getNormalBounds() :如果 JInternalFrame 未处于最大化状态,则返回 getBounds();否则,返回 JInternalFrame 将恢复到的边界。
- getRootPane() :返回此内部框架的 rootPane 对象。
- getUI() :返回呈现此组件的外观对象。
- getWarningString() :获取与此内部框架一起显示的警告字符串。
- isClosable() :返回此 JInternalFrame 是否可以通过某些用户操作关闭。
- isClosed() :返回此 JInternalFrame 当前是否已关闭。
- isIcon() :返回 JInternalFrame 当前是否已图标化。
- isMaximizable() :获取最大化属性的值。
- isMaximum() :返回 JInternalFrame 当前是否最大化。
- isResizable() :返回 JInternalFrame 是否可以调整大小。
- isSelected() :返回 JInternalFrame 是否是当前活动的框架。
- pack() :导致此 JInternalFrame 的组件以其首选大小布局。
- paintComponent(Graphics g) :被覆盖以允许在拖动内部框架时优化绘画。
- paramString() :返回此 JInternalFrame 的字符串表示形式。
- remove(Component c) :从容器中移除指定的组件。
- removeInternalFrameListener(InternalFrameListener l) :移除指定的内部帧监听器。
- setClosable(boolean b) :设置此 JInternalFrame 是否可以通过某些用户操作关闭。
- setContentPane(Container c) :设置此 JInternalFrame 的 contentPane 属性。
- setCursor(Cursor c) :将光标图像设置为指定的光标。
- setDefaultCloseOperation(int o) :设置当用户在这个内部框架上启动“关闭”时默认发生的操作。
- setDesktopIcon(JInternalFrame.JDesktopIcon d) :设置与此 JInternalFrame 关联的 JDesktopIcon。
- setGlassPane(Component g) :设置此 JInternalFrame 的 glassPane 属性。
- setIcon(boolean b) : 图标化或去图标化这个内部框架。
- setJMenuBar(JMenuBar m) :设置此 JInternalFrame 的 menuBar 属性。
- setIconifiable(boolean b) :设置 iconable 属性,该属性必须为 true,用户才能将 JInternalFrame 设为图标。
- setJMenuBar(JMenuBar m) :设置此 JInternalFrame 的 menuBar 属性。
- setLayer(int l) :设置该组件的图层属性的便捷方法。
- setLayer(Integer l) :设置该组件的图层属性的便捷方法。
- setLayeredPane(JLayeredPane l) :设置此 JInternalFrame 的 layeredPane 属性。
- setMaximizable(boolean b) :设置 maximizable 属性,该属性确定 JInternalFrame 是否可以通过某些用户操作最大化。
- setMaximum(boolean b) :最大化并恢复这个内部框架。
- setNormalBounds(Rectangle r) :设置此内部框架的法线边界。
- setResizable(boolean b) :设置 JInternalFrame 是否可以通过某些用户操作调整大小。
- setRootPane(JRootPane r) :设置此 JInternalFrame 的 rootPane 属性。
- setRootPaneCheckingEnabled(boolean e) : 设置调用 add 和 setLayout 是否转发到 contentPane。
- setSelected(boolean s) :选择或取消选择内部框架,如果它正在显示。
- setUI(InternalFrameUI ui) :设置此 JInternalFrame 的 UI 委托。
- show() :使内部框架可见。
- toBack() :将此内部帧发送到后面。
- toFront() :将此内部框架置于前面。
- 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