2013-11-18 2 views
0

Как мы знаем, JInternalFrame не может работать. Мы должны установить его на JDesktopPane Но я слышал от одного из моих друзей, что JInternalFrame может работать. Это возможно ..? Есть ли какой-либо код для основного метода ...?Просмотр JInternalFrames без JDesktopPanes

+1

Необходимо точно указать, что вы пытаетесь сделать, а также предпочтительно, что вы пробовали до сих пор. – Izmaki

+1

Насколько я знаю, невозможно запустить 'JInternalFrame', не добавляя его в' JDesktopPane'. Попробуйте запустить JIF на JFrame, чтобы основной метод имел представление о макете. –

+1

лучше может быть без!, Для лучшей помощи скорее опубликуйте SSCCE, короткий, runnable, компилируемый, без крика !!! – mKorbel

ответ

1

Несомненно, «JInternalFrame не может работать»; у них нет ног. Но если вы утверждаете, что их нельзя использовать без JDesktopPane, откуда вы получаете это «знание»? И почему бы вам не попробовать себя? Она занимает меньше пяти минут:

import javax.swing.*; 

public class IFrames 
{ 
    public static void main(String[] args) 
    { 
    try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } 
    catch(Exception ex){} 
    JFrame f=new JFrame(); 
    f.setContentPane(new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, 
     createFrame("Left"), createFrame("right"))); 
    f.setSize(300, 300); 
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    f.setVisible(true); 
    } 

    private static JInternalFrame createFrame(String title) 
    { 
    final JInternalFrame f1 = new JInternalFrame(title, true, true); 
    f1.setVisible(true); 
    f1.getContentPane().add(new JLabel(title)); 
    return f1; 
    } 
} 

Простой ответ: никто не мешает вам использовать их без JDesktopPane, хотя их использование с более естественно. В файле documentation говорится: «Как правило, вы добавляете JInternalFrames на JDesktopPane».

Ну, «Вообще» не исключает изъятия.

Кстати, JOptionPane.showInternal…Dialog является типичным примером применения JInternalFrame без JDesktopPane.

+0

+1 для 'JOptionPane.showInternal * Dialog'; приведен соответствующий пример [здесь] (http://stackoverflow.com/a/19905717/230513). – trashgod

+0

Можно ли запустить без использования компонента 'JFrame'? – zIronManBox

+1

@zIronManBox: * внутренним * кадрам нужен предок, будь то 'Window',' Frame' или 'Dialog', не имеет значения. Если все, что вас интересует, показывает его без окружающего оформления, установка 'JInternalFrame' в качестве области содержимого' JWindow' будет, хотя для большинства случаев использования вам лучше использовать JFrame или JDialog plus 'setUndecorated (истина);'. Имейте в виду, что элементы управления внутреннего кадра не будут управлять окном хоста. Возможно, вам действительно нужны [look & feel decor] (https://docs.oracle.com/javase/8/docs/api/javax/swing/JFrame.html#setDefaultLookAndFeelDecorated-boolean-) фреймы. – Holger

Смежные вопросы