我有一个相当简单的对话框,其中包含一对大小相等的JPanel,包含在JSplitPane中.现在我正在考虑添加第三个JPanel,我不太确定有一个明显的解决方案.那里有一个很好的窗口对接框架吗?或者这是一个非常复杂的事情?如果我坚持使用3面板拆分,我是否必须使用一对嵌套的JSplitPanes或者是否有允许3路拆分的替代方案?
我做了一个Java swing应用程序.我的主要课程完成了所有的工作SwingUtilities.invokeLater(new Runnable()
.
我的第二课,我用过的都是:
JPanel container = (JPanel) getContentPane();
Run Code Online (Sandbox Code Playgroud)
然后通过调用添加所有位
container.add([name of component]
Run Code Online (Sandbox Code Playgroud)
我现在想把整个'应用程序'变成一个JSplitPane
.因此,我希望我的应用程序在一边,而另一端则需要其他东西.
我该怎么做呢?
public class one{
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame f = new App("main");
f.setSize(1920,1080);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
public class App extends JFrame {
SuppressWarnings("empty-statement")
public App(String title) {
super(title);
JPanel container = (JPanel) getContentPane();
container.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
JButton new button = new JButton("new");
c.gridx = 0;
c.gridy = 0;
c.gridwidth = 2;
//ENTER LOTS …
Run Code Online (Sandbox Code Playgroud) 来这里有点心理障碍:我需要将图像转换为JScrollPane.应该很容易,但我有点迷失.
JSplitPane pane1;
pane1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
new JLabel("hi"),
(new JLabel(new ImageIcon(image))));
Run Code Online (Sandbox Code Playgroud) 是否可以将带有 JButton 的 JPanel 添加到拆分 JPanel?现在,我将带有 JButtons 的 JPanel 添加到 JFrame,但我希望它与其他 JPanel 一起放在 JPanel 上。当我尝试这样做时,我得到一个完全空白的带有分隔符的 JPanel。
______________________________________________________________________________
public class Panel extends JPanel implements Runnable, ActionListener {
public Panel(){
JFrame frame = new JFrame();
ctsMenu = new JPanel(new GridLayout(2,2));
ctsMenu.setPreferredSize(new Dimension(500,500));
for (int iRows = 0; iRows < 2 ; iRows++){
for (int iColumns = 0; iColumns < 2; iColumns++){
sGrid[iRows][iColumns] = new JButton ("("+iRows+","+iColumns+")");
ctsMenu.add(sGrid[iRows][iColumns]);
sGrid[iRows][iColumns].addActionListener(this);
panel.add(ctsMenu);
}
}
sGrid[0][0].setText("A");
sGrid[0][1].setText("B");
sGrid[1][0].setText("C");
sGrid[1][1].setText("D");
frame.setContentPane(panel);
frame.pack();
frame.setVisible(true);
}}
____________________________________________________________________
public MainFrame() …
Run Code Online (Sandbox Code Playgroud)