Недавно я работал над небольшим проектом, и, кажется, я запутался и столкнулся с огромным ментальным блоком. Я знаю, это должно быть просто, вот почему это так меня раздражает, но, как следует из названия, у меня есть 3 класса:
main - это должно создавать экземпляры других классов и содержать только конструкторы:
import java.awt.BorderLayout;
import java.awt.Component;
import javax.swing.JFrame;
public class main {
public static void main(String[] args) {
BrowserFrame browser = new BrowserFrame();
JFrame mainFrame = new JFrame();
mainFrame.setSize(550,550);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Total Guesswork on the next line! Result of a mental block!
//mainFrame.add(browser);
}
}
BrowserFrame - здесь я создал реальное средство просмотра HTML.
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JEditorPane;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.StyleSheet;
public class BrowserFrame {
public BrowserFrame() {
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
URL url = null;
try {
url = new URL("file:///C:/PersonalWorkSpace/PrivateEyes/html/test.html");
} catch (MalformedURLException e) {
e.printStackTrace();
}
JEditorPane jEditorPane = new JEditorPane();
jEditorPane.setEditable(false);
JScrollPane jScrollPane = new JScrollPane(jEditorPane);
HTMLEditorKit kit = new HTMLEditorKit();
jEditorPane.setEditorKit(kit);
StyleSheet styleSheet = kit.getStyleSheet();
styleSheet.addRule("body {color:#000; font-family:times; margin: 4px;}");
styleSheet.addRule("h1 {color: blue;}");
styleSheet.addRule("h2 {color: #ff0000;}");
try {
jEditorPane.setPage(url);
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
}
И, наконец, панель инструментов, которая пока не имеет ничего, но в конечном итоге будет содержать панель инструментов, которую я хочу отобразить в верхней части JFrame после ее кодирования.
Я знаю, что мне нужно сделать компонент BrowserFrame компонентом, но я не могу на всю жизнь понять, как это сделать, и все ресурсы, которые он ищет в Интернете, применяются к другому примеру кода, поэтому он заканчивается смущает меня больше!
Чего я хочу добиться, так это того, чтобы при запуске приложения открывалось окно, в котором отображается мой HTML-документ, а затем в верхней части окна также есть меню, но я даже не могу получить Браузер для отображения в данный момент (:() Любая помощь очень ценится, так как мой ум в настоящий момент здоров и действительно в грязи, я думаю, время для чая.