首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将glCanvas放置在包含按钮的JPanel旁边

将glCanvas放置在包含按钮的JPanel旁边
EN

Stack Overflow用户
提问于 2014-05-29 21:43:41
回答 1查看 409关注 0票数 0

我想让JButton panel消耗frame水平空间的30%左右。

右侧的glCanvas占据了frame空间的其余部分。

如何实现这种布局?

目前:

Main.java

代码语言:javascript
复制
GLProfile profile = GLProfile.get(GLProfile.GL2);
GLCapabilities capabilities = new GLCapabilities(profile);

GLCanvas glcanvas = new GLCanvas(capabilities);
glcanvas.addGLEventListener(new GameRenderer());
glcanvas.setSize(100, 100);

JFrame frame = new JFrame("Tool");

JPanel panel = new JPanel();
JPanel cpanel=new JPanel();
panel.setLayout(null);
cpanel.setLayout(null);

JButton ButtonBR = new JButton("1");
JButton ButtonE = new JButton("2");
JButton ButtonR = new JButton("3");
JButton ButtonC = new JButton("4");
JButton ButtonT = new JButton("5");
JButton ButtonCR = new JButton("6");

ButtonBR.setBounds(10, 30, 150, 40);
ButtonE.setBounds(10, 80, 150, 40);
ButtonR.setBounds(10, 130, 150, 40);
ButtonC.setBounds(10, 180, 150, 40);
ButtonT.setBounds(10, 230, 150, 40);
ButtonCR.setBounds(10, 450, 150, 40);
cpanel.add(glcanvas);

panel.add(ButtonBR);
panel.add(ButtonE);
panel.add(ButtonR);
panel.add(ButtonC);
panel.add(ButtonT);
panel.add(ButtonCR);    
frame.add(cpanel);
frame.add(panel);

frame.setSize(Toolkit.getDefaultToolkit().getScreenSize().width, Toolkit.getDefaultToolkit().getScreenSize().height);
frame.setVisible(true);

Animator animator = new Animator(glcanvas));
animator.start();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-30 00:18:16

考虑以这样的方式使用MigLayout:

代码语言:javascript
复制
import javax.swing.JFrame;
import javax.swing.JLabel;
import net.miginfocom.swing.MigLayout;
import javax.swing.JTextField;

public class Main extends JFrame {
    private static final long serialVersionUID = 1L;

    public Main() {
        getContentPane().setLayout(new MigLayout("", "[grow 30][grow 70]", "[]"));
        JLabel label = new JLabel("30%");
        getContentPane().add(label, "cell 0 0");
        JTextField textField = new JTextField("70%");
        getContentPane().add(textField, "cell 1 0,growx");
        pack();
        setVisible(true);
    }

    public static void main(String[] args) {
        new Main();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23943524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档