2016-11-25 7 views
1

Как я могу отобразить более одной веб-страницы внутри JFrame?Показать несколько веб-страниц внутри JFrame

JEditorPane website = new JEditorPane(line); 
    website.setEditable(false); 
    JFrame frame = new JFrame("JxBrowser"); 
    addressBar.setText(line); 
    frame.add(new JScrollPane(website)); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setSize(800, 600); 
    frame.setVisible(true); 

Я поместил этот код внутри for петли, как обычно, сайт открыт в другом кадре, я хочу, чтобы все мои браузер веб-сайты, чтобы быть открытыми в одном кадре,

Как это возможно?

+1

Настоящие браузеры обычно используют вкладки, правильно? И у Swing есть JTabbedPane. –

+0

См. [Использование нескольких JFrames, Good/Bad Practice?] (Http://stackoverflow.com/q/9554636/418556). Обратите внимание, что среди многих предложений по альтернативам (возможно, наиболее логичный), как это было предложено @ JBNizet. –

ответ

0

Как пояснил @JBNizet в комментариях, вы можете использовать JTabbedPane.

Вместо добавления веб-сайта JEditorPane непосредственно в JFrame, сделайте следующее:

JTabbedPane tabbedPane = new JTabbedPane(); 
tabbedPane.add("Website Title", new JScrollPane(website)); 
frame.add(tabbedPane); 

Конечно, вы не должны создать новый JTabbedPane или новый JFrame для каждого веб-сайта, вместо этого вы должны просто добавить сайт в качестве новой вкладки для уже существующей панели с вкладками.

Не забывайте, что для каждой вкладки потребуется свой собственный объект addressBar.