Я нахожусь в chalange с моим другом, чтобы сделать лучшую программу, он решил сделать инструмент боли, в то время как я решил сделать веб-браузер. В настоящее время я пытаюсь реализовать эти поля. если я добавляю адресную строку и кнопку, все работает так, как сказано, но когда я помещаю JEditorPane, то на дисплее не отображается то, что сказано, чтобы показывать.
CODE без JEditorPane (все работает):
import java.awt.*;
import javax.swing.*;
public class browserPannel
{
public static void main(String[] arg)
{
JFrame browser = new JFrame("A Nun In A Weelchair");
browser.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
browser.setLocationRelativeTo(null);
browser.setSize(1000,700);
browser.setVisible(true);
browser.setResizable(false);
JTextField url = new JTextField();
url.setSize(890,30);
url.setVisible(true);
url.setLocation(15,15);
JPanel holder = new JPanel();
holder.setBackground(Color.lightGray);
holder.setSize(1000,700);
JButton send = new JButton("Send");
send.setSize(75,30);
send.setVisible(true);
send.setLocation(906,15);
//JEditorPane htmlc = new JEditorPane();
//htmlc.setBackground(Color.red);
//htmlc.setEditable(true);
//htmlc.setContentType("text/html");
//htmlc.setSize(500,500);
//htmlc.setVisible(true);
//htmlc.setLocation(15,50);
holder.add(url);
holder.add(send);
//holder.add(htmlc);
browser.getContentPane().add(holder);
}
}
ИЗОБРАЖЕНИЕ Без JEditorPanehttp все работает, как сказано: http://i.stack.imgur.com/hONs3.png
CODE С JEditorPane (все не работает, как сказано):
import java.awt.*;
import javax.swing.*;
public class browserPannel
{
public static void main(String[] arg)
{
JFrame browser = new JFrame("A Nun In A Weelchair");
browser.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
browser.setLocationRelativeTo(null);
browser.setSize(1000,700);
browser.setVisible(true);
browser.setResizable(false);
JTextField url = new JTextField();
url.setSize(890,30);
url.setVisible(true);
url.setLocation(15,15);
JPanel holder = new JPanel();
holder.setBackground(Color.lightGray);
holder.setSize(1000,700);
JButton send = new JButton("Send");
send.setSize(75,30);
send.setVisible(true);
send.setLocation(906,15);
JEditorPane htmlc = new JEditorPane();
htmlc.setBackground(Color.red);
htmlc.setEditable(true);
htmlc.setContentType("text/html");
htmlc.setSize(500,500);
htmlc.setVisible(true);
htmlc.setLocation(15,50);
holder.add(url);
holder.add(send);
holder.add(htmlc);
browser.getContentPane().add(holder);
}
}
ИЗОБРАЖЕНИЕ С JEditorPane все не работает, как сказано: http://i.stack.imgur.com/3ayeP.png
Я пробовал удалить некоторые из.set и я hav, попробовал посмотреть onine, я также попробовал запустить JEditorPpane самостоятельно, но я не могу настроить для него переменные (например, местоположение, размер и т.д.).
У вас возникают проблемы, потому что FlowLayout
, который является менеджером макетов по умолчанию для JPanel
, принимает собственные решения о том, как управлять панелью holder
содержать ее содержимое.
JScrollPane
s. Подробнее о том, как использовать панели прокрутки
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
public class BrowserPannel {
public static void main(String[] arg) {
JFrame browser = new JFrame("A Nun In A Weelchair");
browser.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
browser.setLocationRelativeTo(null);
JTextField url = new JTextField(20);
JPanel header = new JPanel();
header.setBackground(Color.lightGray);
JButton send = new JButton("Send");
JEditorPane htmlc = new JEditorPane();
htmlc.setBackground(Color.red);
htmlc.setEditable(true);
htmlc.setContentType("text/html");
header.add(url);
header.add(send);
browser.getContentPane().add(header, BorderLayout.NORTH);
browser.getContentPane().add(new JScrollPane(htmlc));
browser.pack();
browser.setVisible(true);
}
}
validate
для кадра, чтобы принудительно обновить его, что приведет к снижению производительности. Чтобы расширить JTextField
по всему фрейму, вам нужно использовать другой менеджер компоновки. Что-то вроде GridBagLayout
сделает эту работу.
JFrame
вызовитеadd()
,pack()
затемsetVisible()
.