话不多说,先上图上代码
这是我自己写的界面,用了网格组的布局方式,下面上代码(注:关于布局的代码我用蓝色标注)
package JNotePad;import java.awt.*;
import javax.swing.*;public class JNotePad {
JNotePad(){
JFrame jframe = new JFrame("HSQL Database Manager");
jframe.setSize(800,600);
GridBagLayout gridBagLayout = new GridBagLayout();
jframe.setLayout(gridBagLayout);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar bar = new JMenuBar();
JMenu jfile = new JMenu("File");
JMenuItem conn = new JMenuItem("Connect...");
JMenuItem open = new JMenuItem("Open Script...");
JMenuItem sasc = new JMenuItem("Save Script...");
JMenuItem sare = new JMenuItem("Save Result...");
JMenuItem exit = new JMenuItem("Exit");
jfile.add(conn);
jfile.addSeparator();
jfile.add(open);
jfile.add(sasc);
jfile.add(sare);
jfile.addSeparator();
jfile.add(exit);
JMenu jview = new JMenu("View");
JMenuItem retr = new JMenuItem("Refresh Tree");
JMenuItem auto = new JCheckBoxMenuItem("Auto-refresh tree");
JMenuItem show1 = new JCheckBoxMenuItem("Show row counts");
JMenuItem show2 = new JCheckBoxMenuItem("Show system tables");
JMenuItem show3 = new JCheckBoxMenuItem("Show schemas");
JMenuItem show4 = new JCheckBoxMenuItem("Show results in grid(a.o.t. text) Ctrl-G");
jview.add(retr);
jview.add(auto);
jfile.addSeparator();
jview.add(show1);
jview.add(show2);
jview.add(show3);
jview.add(show4);
JMenu jcomm = new JMenu("Command");
JMenuItem select = new JMenuItem("SELECT");
JMenuItem insert = new JMenuItem("INSERT");
JMenuItem update = new JMenuItem("UPDATE");
JMenuItem delete = new JMenuItem("DELETE");
JMenuItem excute = new JMenuItem("EXCUTE");
JMenuItem table = new JMenuItem("CREATE TABLE");
JMenuItem drop = new JMenuItem("DROP TABLE");
JMenuItem cr_index = new JMenuItem("CREATE INDEX");
JMenuItem dr_index = new JMenuItem("DROP INDEX");
JMenuItem commit = new JMenuItem("COMMIT*");
JMenuItem roll = new JMenuItem("ROLL BACK*");
JMenuItem check = new JMenuItem("CHECHPOINT*");
JMenuItem script = new JMenuItem("SCRIPT");
JMenuItem set = new JMenuItem("SET");
JMenuItem shut = new JMenuItem("SHUTDOWN");
JMenuItem test = new JMenuItem("Test Script");
jcomm.add(select);
jcomm.add(insert);
jcomm.add(update);
jcomm.add(delete);
jcomm.add(excute);
jfile.addSeparator();
jcomm.add(table);
jcomm.add(drop);
jcomm.add(cr_index);
jcomm.add(dr_index);
jfile.addSeparator();
jcomm.add(commit);
jcomm.add(roll);
jcomm.add(check);
jcomm.add(check);
jcomm.add(script);
jcomm.add(set);
jcomm.add(shut);
jcomm.add(test);
JMenu jrece = new JMenu("Recent");
JMenu jopti = new JMenu("Options");
JMenu jtool = new JMenu("Tools");
bar.add(jfile);
bar.add(jview);
bar.add(jcomm);
bar.add(jrece);
bar.add(jopti);
bar.add(jtool);
JTree jtree = new JTree();
JScrollPane jplA =
new JScrollPane(jtree,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
GridBagConstraints constraints1 = new GridBagConstraints();
constraints1.gridx = 0;
constraints1.gridy = 0;
constraints1.gridwidth = 2;
constraints1.gridheight = 7;
constraints1.weightx = 100;
constraints1.weighty = 100;
constraints1.anchor = constraints1.NORTHWEST;
constraints1.fill = constraints1.BOTH;
JButton bt1 = new JButton("Clear");
GridBagConstraints constraints2 = new GridBagConstraints();
constraints2.gridx = 2;
constraints2.gridy = 0;
constraints2.gridwidth = 1;
constraints2.gridheight = 1;
constraints2.weightx = 100;
constraints2.weighty = 100;
constraints2.anchor = constraints2.CENTER;
constraints2.fill = constraints2.NONE;
JButton bt2 = new JButton("Execute");
GridBagConstraints constraints3 = new GridBagConstraints();
constraints3.gridx = 6;
constraints3.gridy = 0;
constraints3.gridwidth = 1;
constraints3.gridheight = 1;
constraints3.weightx = 100;
constraints3.weighty = 100;
constraints3.anchor = constraints3.CENTER;
constraints3.fill = constraints3.NONE;
JTextArea text1 = new JTextArea();
text1.insert("swdewfrefgr",0);
JScrollPane jplB = new JScrollPane(text1,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
GridBagConstraints constraints4 = new GridBagConstraints();
constraints4.gridx = 3;
constraints4.gridy = 0;
constraints4.gridwidth = 3;
constraints4.gridheight = 2;
constraints4.weightx = 100;
constraints4.weighty = 100;
constraints4.anchor = constraints4.CENTER;
constraints4.fill = constraints4.BOTH;
JTextArea text2 = new JTextArea();
text2.insert("swdewfrefgr",0);
JScrollPane jplC = new JScrollPane(text2,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
GridBagConstraints constraints5 = new GridBagConstraints();
constraints5.gridx = 2;
constraints5.gridy = 2;
constraints5.gridwidth = 5;
constraints5.gridheight = 5;
constraints5.weightx = 100;
constraints5.weighty = 100;
constraints5.anchor = constraints5.CENTER;
constraints5.fill = constraints5.BOTH;
jframe.add(jplA,constraints1);
jframe.add(bt1,constraints2);
jframe.add(bt2,constraints3);
jframe.add(jplB,constraints4);
jframe.add(jplC,constraints5);
jframe.setJMenuBar(bar);
jframe.setVisible(true);
}
public static void main(String[] args) {
JNotePad notepad = new JNotePad();
}}
但这不是我想要的效果,总是差一点,完美的效果图如下:
我已经在自己的基础上尝试修改,但总是无法达到效果,希望擅长布局的大神们能给一点指导,感激Java布局
这是我自己写的界面,用了网格组的布局方式,下面上代码(注:关于布局的代码我用蓝色标注)
package JNotePad;import java.awt.*;
import javax.swing.*;public class JNotePad {
JNotePad(){
JFrame jframe = new JFrame("HSQL Database Manager");
jframe.setSize(800,600);
GridBagLayout gridBagLayout = new GridBagLayout();
jframe.setLayout(gridBagLayout);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar bar = new JMenuBar();
JMenu jfile = new JMenu("File");
JMenuItem conn = new JMenuItem("Connect...");
JMenuItem open = new JMenuItem("Open Script...");
JMenuItem sasc = new JMenuItem("Save Script...");
JMenuItem sare = new JMenuItem("Save Result...");
JMenuItem exit = new JMenuItem("Exit");
jfile.add(conn);
jfile.addSeparator();
jfile.add(open);
jfile.add(sasc);
jfile.add(sare);
jfile.addSeparator();
jfile.add(exit);
JMenu jview = new JMenu("View");
JMenuItem retr = new JMenuItem("Refresh Tree");
JMenuItem auto = new JCheckBoxMenuItem("Auto-refresh tree");
JMenuItem show1 = new JCheckBoxMenuItem("Show row counts");
JMenuItem show2 = new JCheckBoxMenuItem("Show system tables");
JMenuItem show3 = new JCheckBoxMenuItem("Show schemas");
JMenuItem show4 = new JCheckBoxMenuItem("Show results in grid(a.o.t. text) Ctrl-G");
jview.add(retr);
jview.add(auto);
jfile.addSeparator();
jview.add(show1);
jview.add(show2);
jview.add(show3);
jview.add(show4);
JMenu jcomm = new JMenu("Command");
JMenuItem select = new JMenuItem("SELECT");
JMenuItem insert = new JMenuItem("INSERT");
JMenuItem update = new JMenuItem("UPDATE");
JMenuItem delete = new JMenuItem("DELETE");
JMenuItem excute = new JMenuItem("EXCUTE");
JMenuItem table = new JMenuItem("CREATE TABLE");
JMenuItem drop = new JMenuItem("DROP TABLE");
JMenuItem cr_index = new JMenuItem("CREATE INDEX");
JMenuItem dr_index = new JMenuItem("DROP INDEX");
JMenuItem commit = new JMenuItem("COMMIT*");
JMenuItem roll = new JMenuItem("ROLL BACK*");
JMenuItem check = new JMenuItem("CHECHPOINT*");
JMenuItem script = new JMenuItem("SCRIPT");
JMenuItem set = new JMenuItem("SET");
JMenuItem shut = new JMenuItem("SHUTDOWN");
JMenuItem test = new JMenuItem("Test Script");
jcomm.add(select);
jcomm.add(insert);
jcomm.add(update);
jcomm.add(delete);
jcomm.add(excute);
jfile.addSeparator();
jcomm.add(table);
jcomm.add(drop);
jcomm.add(cr_index);
jcomm.add(dr_index);
jfile.addSeparator();
jcomm.add(commit);
jcomm.add(roll);
jcomm.add(check);
jcomm.add(check);
jcomm.add(script);
jcomm.add(set);
jcomm.add(shut);
jcomm.add(test);
JMenu jrece = new JMenu("Recent");
JMenu jopti = new JMenu("Options");
JMenu jtool = new JMenu("Tools");
bar.add(jfile);
bar.add(jview);
bar.add(jcomm);
bar.add(jrece);
bar.add(jopti);
bar.add(jtool);
JTree jtree = new JTree();
JScrollPane jplA =
new JScrollPane(jtree,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
GridBagConstraints constraints1 = new GridBagConstraints();
constraints1.gridx = 0;
constraints1.gridy = 0;
constraints1.gridwidth = 2;
constraints1.gridheight = 7;
constraints1.weightx = 100;
constraints1.weighty = 100;
constraints1.anchor = constraints1.NORTHWEST;
constraints1.fill = constraints1.BOTH;
JButton bt1 = new JButton("Clear");
GridBagConstraints constraints2 = new GridBagConstraints();
constraints2.gridx = 2;
constraints2.gridy = 0;
constraints2.gridwidth = 1;
constraints2.gridheight = 1;
constraints2.weightx = 100;
constraints2.weighty = 100;
constraints2.anchor = constraints2.CENTER;
constraints2.fill = constraints2.NONE;
JButton bt2 = new JButton("Execute");
GridBagConstraints constraints3 = new GridBagConstraints();
constraints3.gridx = 6;
constraints3.gridy = 0;
constraints3.gridwidth = 1;
constraints3.gridheight = 1;
constraints3.weightx = 100;
constraints3.weighty = 100;
constraints3.anchor = constraints3.CENTER;
constraints3.fill = constraints3.NONE;
JTextArea text1 = new JTextArea();
text1.insert("swdewfrefgr",0);
JScrollPane jplB = new JScrollPane(text1,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
GridBagConstraints constraints4 = new GridBagConstraints();
constraints4.gridx = 3;
constraints4.gridy = 0;
constraints4.gridwidth = 3;
constraints4.gridheight = 2;
constraints4.weightx = 100;
constraints4.weighty = 100;
constraints4.anchor = constraints4.CENTER;
constraints4.fill = constraints4.BOTH;
JTextArea text2 = new JTextArea();
text2.insert("swdewfrefgr",0);
JScrollPane jplC = new JScrollPane(text2,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
GridBagConstraints constraints5 = new GridBagConstraints();
constraints5.gridx = 2;
constraints5.gridy = 2;
constraints5.gridwidth = 5;
constraints5.gridheight = 5;
constraints5.weightx = 100;
constraints5.weighty = 100;
constraints5.anchor = constraints5.CENTER;
constraints5.fill = constraints5.BOTH;
jframe.add(jplA,constraints1);
jframe.add(bt1,constraints2);
jframe.add(bt2,constraints3);
jframe.add(jplB,constraints4);
jframe.add(jplC,constraints5);
jframe.setJMenuBar(bar);
jframe.setVisible(true);
}
public static void main(String[] args) {
JNotePad notepad = new JNotePad();
}}
但这不是我想要的效果,总是差一点,完美的效果图如下:
我已经在自己的基础上尝试修改,但总是无法达到效果,希望擅长布局的大神们能给一点指导,感激Java布局
解决方案 »
- 关于垃圾回收的问题,答案是哪个,为什么?
- 急!急!急!用java在网页中添加图形的问题
- 怎么样知道自己的内存泄露了??
- .close();编译器提示无法访问的语句
- 简单的反射问题
- 求高手帮助,一个非常简单的问题。
- ~~~大虾们帮忙啊~~~
- 2、请朋友们帮我看看这个程序的问题在那里??谢谢
- 第一次启动BES5.1时的password 和realm是什么?
- 关于线程的wait()+notify(),以及过时的suspend()+resum()的问题,先谢谢大家的解答了
- 同步锁的问题:请问子类中调用父类方法时锁对象是谁?为什么
- Java的绘图是覆盖paint方法还是覆盖paintComponent方法?
左中右 north
左west
下 south
反正winform的grid好像是这样布局的。。这样子应该可以设置大小才对啊
右边是个panel,布局是方位布局,设置上一个panel下一个选项卡 上的角的panel也用方位布局,左中右,左右两个按钮,中间一个框,下面的选项卡也是方位布局,但是里面只有中,然后输入框。
import java.awt.*;public class Hello {
private static void layoutComponents(Container container) {
double f = TableLayout.FILL;
double p = TableLayout.PREFERRED;
double[] columnSize = {180, p, f, p}; // 蓝色区域的宽
double[] rowSize = {120, f}; // 红色区域的高 TableLayout layout = new TableLayout(columnSize, rowSize);
container.setLayout(layout); JPanel panel = null; panel = new JPanel();
panel.setBackground(Color.BLUE);
container.add(panel, "0, 0, 0, 1"); container.add(new JButton("Clear"), "1, 0"); panel = new JPanel();
panel.setBackground(Color.RED);
container.add(panel, "2, 0"); container.add(new JButton("Execute"), "3, 0"); panel = new JPanel();
panel.setBackground(Color.GREEN);
container.add(panel, "1, 1, 3, 1");
} private static void createGuiAndShow() {
JFrame frame = new JFrame(""); layoutComponents(frame.getContentPane()); // Set frame's close operation and location in the screen.
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
} public static void main(String[] args) {
createGuiAndShow();
}
}
double[] rowSize = {120, f}; // 120为红色区域的高
不过我看了TableLayout以及import info.clearthought.layout.TableLayout,我发现这个在Java的SE的API中是没有的,这个应该是android的界面设计,所以我就没法用上了嗯嗯,还是要感谢六楼的建议。希望有更多的指导
所以我一般不用这个。我一般自己设计layout的子类。