Java 将JApplet添加到JPanel
我正在Swing中开发我的新应用程序,我想在这个应用程序中重用JChempaint。我有JChempaint applet的jar文件(它是在Swing中使用Java 将JApplet添加到JPanel,java,swing,applet,Java,Swing,Applet,我正在Swing中开发我的新应用程序,我想在这个应用程序中重用JChempaint。我有JChempaint applet的jar文件(它是在Swing中使用JApplet开发的) 基本上,我想在我的新应用程序中将jar文件添加到JPanel。无论如何,这可能吗?JChempaint是开源的,我也有源代码 如何将JChempaint小程序添加到面板 以下是尝试实施建议后的详细信息------ 我从我的项目开始,并试图开发一个框架来嵌入JChemPaint窗口。 以下是我的布局代码: packa
JApplet
开发的)
基本上,我想在我的新应用程序中将jar文件添加到JPanel
。无论如何,这可能吗?JChempaint是开源的,我也有源代码
如何将JChempaint小程序添加到面板
以下是尝试实施建议后的详细信息------ 我从我的项目开始,并试图开发一个框架来嵌入JChemPaint窗口。 以下是我的布局代码:
package LearnSwingPkg;
import java.awt.BorderLayout;
class SplitPane extends JFrame {
private JPanel panel1;
private JPanel panel2;
private JScrollPane panel3;
private JScrollPane panel4;
protected JSplitPane split;
public SplitPane(){
super("Learn Swing");
JFrame.setDefaultLookAndFeelDecorated(true);
setSize(900, 700);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocation(0,0);
setTitle( "Split Pane Application" );
JPanel topPanel = new JPanel();
topPanel.setLayout( new BorderLayout() );
getContentPane().add( topPanel );
// Create the panels
createPanel1();
createPanel2();
createPanel3();
createPanel4();
JSplitPane spLeft = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true,panel1, panel3);
JSplitPane spRight = new JSplitPane(JSplitPane.VERTICAL_SPLIT,true, panel2, panel4);
split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true,spLeft, spRight);
split.setOneTouchExpandable(true);
getContentPane().add(split, BorderLayout.CENTER);
}
//top left
public void createPanel1(){
panel1 = new JPanel();
panel1.setLayout( new BorderLayout() );
panel1.add((new TextArea("Panel1")));
panel1.setPreferredSize( new Dimension( 450, 400 ) );
panel1.setMaximumSize(new Dimension(450, 400));
}
//top right
public void createPanel2(){
panel2 = new JPanel();
panel2.setLayout( new BorderLayout() );
panel2.add((new TextArea("Panel2")));
panel2.setPreferredSize( new Dimension( 450, 400 ) );
panel2.setMaximumSize(new Dimension(450, 400));
}
//bottom left
public void createPanel3(){
Label label_prop = new Label("Properties:", Label.LEFT);
String[] columnNames = {"Properties",
"",
};
Object[][] data = {
{"", "",}, {"", ""}, {"", ""},{"", ""},
{"", "",}, {"", ""}, {"", ""},{"", ""},
{"", "",}, {"", ""}, {"", ""},{"", ""}
};
JTable table = new JTable(data, columnNames);
table.setBackground(getBackground());
table.setBackground(Color.LIGHT_GRAY);
table.setRowHeight(20);
table.setBorder(BasicBorders.getMenuBarBorder());
panel3 = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZO
panel3.add(label_prop);
panel3.setPreferredSize( new Dimension( 20, 20 ) );
panel3.setMinimumSize( new Dimension( 20, 20 ) );
}
//bottom right
public void createPanel4(){
panel4 = new JScrollPane();
//panel4.setLayout( new FlowLayout() );
String[] columnNames = {"Activities",
"",
};
Object[][] data = {
{"", "",}, {"", ""}, {"", ""},{"", ""},
{"", "",}, {"", ""}, {"", ""},{"", ""},
{"", "",}, {"", ""}, {"", ""},{"", ""}
};
JTable table = new JTable(data, columnNames);
table.setBackground(getBackground());
table.setBackground(Color.LIGHT_GRAY);
table.setRowHeight(20);
table.setBorder(BasicBorders.getMenuBarBorder());
panel4 = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
panel4.setPreferredSize( new Dimension( 20, 20 ) );
panel4.setMinimumSize( new Dimension( 20, 20 ) );
}
public static void main( String args[] ){
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception evt) {}
// Create an instance of the test application
SplitPane mainFrame = new SplitPane();
mainFrame.setVisible( true );
mainFrame.setBackground(Color.blue);
}
}
目前,我试图在上面的代码中插入一个空表。稍后,它将填充相关数据
这给了我一个有四个块的框架,左上角有一个JCHemPaint窗口,下两个块有一个表
现在,为了在Panel 1中添加JChemPaint,我编辑了此文件中的代码。我更改了CreatePanel 1的方法:
//top left
public void createPanel1(){
panel1 = new JPanel();
panel1.setLayout( new BorderLayout() );
JChemPaint.showInstance(filename, null, null, debug);
panel1.setPreferredSize( new Dimension( 450, 400 ) );
panel1.setMaximumSize(new Dimension(450, 400));
}
这仅输出JChemPaint窗口
如果我的框架存在问题,我无法将其放入面板1。
我该怎么做?
谢谢大家! 正如所建议的,它是一个标准的Java应用程序。请参见
showInstance()
,以获取构建JChemPaintPanel
并按照建议将其添加到JFrame
是标准Java应用程序的示例。请参见showInstance()
,以获取构建JChemPaintPanel
并按照建议将其添加到JFrame
是标准Java应用程序的示例。请参见showInstance()
,以获取构建JChemPaintPanel
并按照建议将其添加到JFrame
是标准Java应用程序的示例。请参见showInstance()
,以获取构造JChemPaintPanel
并将其添加到JFrame
的示例,“jar”是一个包含Java类和资源的zip文件,它不是Swing组件,因此不能被视为Swing组件。因此,对于您的直接问题,“我可以向JPanel添加一个Jar吗?”
的简短回答是不,您不能。但是,如果jar文件包含从Swing组件(如JPanel或JComponent)扩展的Swing类,并且文档或源代码能够告诉您这一点,那么是的,您可以在自己的Swing GUI中使用这些类的对象。非常感谢。这肯定会对我有所帮助,“jar”是一个包含Java类和资源的zip文件,它不是Swing组件,因此不能被视为Swing组件。因此,对于您的直接问题,“我可以向JPanel添加一个Jar吗?”
的简短回答是不,您不能。但是,如果jar文件包含从Swing组件(如JPanel或JComponent)扩展的Swing类,并且文档或源代码能够告诉您这一点,那么是的,您可以在自己的Swing GUI中使用这些类的对象。非常感谢。这肯定会对我有所帮助,“jar”是一个包含Java类和资源的zip文件,它不是Swing组件,因此不能被视为Swing组件。因此,对于您的直接问题,“我可以向JPanel添加一个Jar吗?”
的简短回答是不,您不能。但是,如果jar文件包含从Swing组件(如JPanel或JComponent)扩展的Swing类,并且文档或源代码能够告诉您这一点,那么是的,您可以在自己的Swing GUI中使用这些类的对象。非常感谢。这肯定会对我有所帮助,“jar”是一个包含Java类和资源的zip文件,它不是Swing组件,因此不能被视为Swing组件。因此,对于您的直接问题,“我可以向JPanel添加一个Jar吗?”
的简短回答是不,您不能。但是,如果jar文件包含从Swing组件(如JPanel或JComponent)扩展的Swing类,并且文档或源代码能够告诉您这一点,那么是的,您可以在自己的Swing GUI中使用这些类的对象。非常感谢。这肯定会对我有帮助。谢谢@trashgood。我将研究这个例子,如果我有任何问题,我会回复你;引用了一些相关的例子。谢谢@trashgood。我将研究这个例子,如果我有任何问题,我会回复你;引用了一些相关的例子。谢谢@trashgood。我将研究这个例子,如果我有任何问题,我会回复你;引用了一些相关的例子。谢谢@trashgood。我将研究这个例子,如果我有任何问题,我会回复你;列举了一些相关的例子。