Java Swing | Внутренний каркас с примерами
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 (Значок значка) : устанавливает значок для кадра на указанное изображение
 - setLayout (менеджер LayoutManager) : устанавливает компоновку фрейма для указанного менеджера компоновки
 - 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 () : получает AccessibleContext, связанный с этим JInternalFrame.
 - getContentPane () : возвращает панель содержимого для этого внутреннего фрейма.
 - getDefaultCloseOperation () : возвращает операцию по умолчанию, которая происходит, когда пользователь инициирует «закрытие» этого внутреннего фрейма.
 - getDesktopIcon () : возвращает JDesktopIcon, используемый при значении этого JInternalFrame.
 - getDesktopPane () : удобный метод, который ищет в иерархии предков экземпляр JDesktop.
 - getFocusOwner () : если этот JInternalFrame активен, возвращает дочерний элемент, у которого есть фокус.
 - getFrameIcon () : возвращает изображение, отображаемое в строке заголовка этого внутреннего фрейма
 - getGlassPane () : возвращает стеклянную панель для этого внутреннего фрейма.
 - getInternalFrameListeners () : возвращает массив всех InternalFrameListeners, добавленных в этот JInternalFrame с помощью addInternalFrameListener
 - getJMenuBar () : возвращает текущий JMenuBar для этого JInternalFrame
 - getLastCursor () : возвращает последний курсор, который был установлен методом setCursor
 - 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) : устанавливает свойство contentPane этого JInternalFrame.
 - setCursor (Cursor c) : устанавливает изображение курсора на указанный курсор.
 - setDefaultCloseOperation (int o) : устанавливает операцию, которая будет выполняться по умолчанию, когда пользователь инициирует «закрытие» этого внутреннего фрейма.
 - setDesktopIcon (JInternalFrame.JDesktopIcon d) : устанавливает JDesktopIcon, связанный с этим JInternalFrame.
 - setGlassPane (Component g) : устанавливает свойство glassPane этого JInternalFrame.
 - setIcon (boolean b) : превращает этот внутренний фрейм в иконку или де-икону.
 - setJMenuBar (JMenuBar m) : устанавливает свойство menuBar для этого JInternalFrame.
 - setIconifiable (boolean b) : устанавливает свойство iconable, которое должно быть истинным, чтобы пользователь мог сделать JInternalFrame значком.
 - setJMenuBar (JMenuBar m) : устанавливает свойство menuBar для этого JInternalFrame.
 - setLayer (int l) : удобный метод для установки атрибута слоя этого компонента.
 - setLayer (Integer l) : удобный метод для установки атрибута слоя этого компонента.
 - setLayeredPane (JLayeredPane l) : устанавливает свойство LayeredPane этого JInternalFrame.
 - setMaximizable (boolean b) : устанавливает свойство maximizable, которое определяет, можно ли развернуть JInternalFrame каким-либо действием пользователя.
 - setMaximum (логическое b) : разворачивает и восстанавливает этот внутренний фрейм.
 - setNormalBounds (Rectangle r) : устанавливает нормальные границы для этого внутреннего кадра.
 - setResizable (boolean b) : устанавливает, можно ли изменить размер JInternalFrame каким-либо действием пользователя.
 - setRootPane (JRootPane r) : устанавливает свойство rootPane для этого JInternalFrame.
 - setRootPaneCheckingEnabled (boolean e) : устанавливает, перенаправляются ли вызовы add и setLayout в contentPane.
 - setSelected (boolean s) : выбирает или отменяет выбор внутреннего фрейма, если он отображается.
 - setUI (InternalFrameUI ui) : устанавливает делегата пользовательского интерфейса для этого JInternalFrame.
 - show () : делает внутреннюю рамку видимой.
 - toBack () : отправляет этот внутренний фрейм на задний план.
 - toFront () : переносит этот внутренний фрейм на передний план.
 - updateUI () : уведомление от UIManager о том, что внешний вид изменился.
 
1. Program to create a simple JInternalFrame : 
 
Java
// java Program to create a simple JInternalFrameimport 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();    }} | 
Выход :

2. program to create multiple internal frames 
 
Java
// java Program to create multiple internal framesimport 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 . Program to create multiple frame and set icon to the frame 
 
Java
// java Program to create multiple frame and set icon to the frameimport 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.
Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .