一个有关GUI界面的问题,求高手帮忙解答 感激不尽 gui界面设计 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以在eclipse上安装个Windowbuild pro插件,自己拖拖界面就成了 麻烦你说清楚一些,是我设置的哪个布局管理器的问题啊!?布局管理器一般使用组件的preferredSize。不过有些布局管理器会忽略其中的宽或高,如BoxLayout 如果单纯就这点程序的话,没必要用那么多的JPanel; 设置布局管理器为null,然后就可以设置组件的位置了; 小弟刚刚开始自学JAVA,看了这个,我想问JAVA里的界面都是只能用代码做吗?有没有什么工具可以像VC,VF一样,直接可以做界面的。 在底部显示是因为你设置了BorderLayout.SOUTH,这种布局是自动将组件填充满的。你可以在添加JButton之前new JPanel,然后把JButton装到JPanel中,再把JPanel装到South中。你设置的就正常了 Class.forName("com.mysql.jdbc.Driver"); JPanel panel = new JPanel();panel.add(jb);buttonPanel.add(panel,BorderLayout.NORTH); Class.forName("com.mysql.jdbc.Driver"); JPanel panel = new JPanel();panel.add(jb);buttonPanel.add(panel,BorderLayout.NORTH);就这样改。 import javax.swing.JFrame;import javax.swing.JPanel; import javax.swing.JTextField;import javax.swing.JPanel;import javax.swing.JLabel;import javax.swing.JButton;import java.awt.BorderLayout; import javax.swing.Spring; import javax.swing.SpringLayout; import java.awt.Container;public class ButtonTest01{JFrame jf = new JFrame("登录");private JLabel jl1 = new JLabel("用户名");private JTextField jtf1 = new JTextField(20);private JLabel jl2 = new JLabel(" 密码 ");private JTextField jtf2 = new JTextField(20);private JPanel buttonPanel = new JPanel();private JButton jb = new JButton("登录");public void init() throws Exception{ jf.setSize(400,300); jb.setBounds(20,10,200,580); Container contentPane = jf.getContentPane(); SpringLayout layout = new SpringLayout(); contentPane.setLayout(layout); contentPane.add(jl1); contentPane.add(jtf1); contentPane.add(jl2); contentPane.add(jtf2); contentPane.add(jb); layout.putConstraint(SpringLayout.NORTH, jl1, 20, SpringLayout.NORTH, contentPane); layout.putConstraint(SpringLayout.WEST, jl1, 10, SpringLayout.WEST, contentPane); layout.putConstraint(SpringLayout.NORTH, jtf1, 20, SpringLayout.NORTH, contentPane); layout.putConstraint(SpringLayout.WEST, jtf1, 5, SpringLayout.EAST, jl1); layout.putConstraint(SpringLayout.NORTH, jl2, 60, SpringLayout.NORTH, contentPane); layout.putConstraint(SpringLayout.WEST, jl2, 10, SpringLayout.WEST, contentPane); layout.putConstraint(SpringLayout.NORTH, jtf2, 60, SpringLayout.NORTH, contentPane); layout.putConstraint(SpringLayout.WEST, jtf2, 5, SpringLayout.EAST, jl2); layout.putConstraint(SpringLayout.NORTH, jb, 100, SpringLayout.NORTH, contentPane); layout.putConstraint(SpringLayout.WEST, jb,130, SpringLayout.WEST, contentPane); jf.setVisible(true);}public static void main(String[] arg0)throws Exception{ButtonTest01 lft = new ButtonTest01();lft.init();}} 用相对布局SpringLayout可以实现! JPanel默认为流布局,你改为JPanel jp0 = new JPanel(new BorderLayout());试试 又一道爱立信面试题! 关于取得oracle的blob字段问题(急!!!!!!!!) 应该是 Long和long数的比较出现了问题,具体见内部 关于甘特图的生成,刚才错帖到扩展区了。。。 怎样测试Socket是否可用 为什么会没有声音? 调试问题,我都不会 Java做Application用什么平台好? 一个简单的问题(在线) 如何控制java程序的定时执行 哪些场合下最好用不可变类? 链表insert方法应该怎么改进?
布局管理器一般使用组件的preferredSize。不过有些布局管理器会忽略其中的宽或高,如BoxLayout
设置布局管理器为null,然后就可以设置组件的位置了;
JPanel panel = new JPanel();
panel.add(jb);
buttonPanel.add(panel,BorderLayout.NORTH);
JPanel panel = new JPanel();
panel.add(jb);
buttonPanel.add(panel,BorderLayout.NORTH);
就这样改。
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.BorderLayout;
import javax.swing.Spring;
import javax.swing.SpringLayout;
import java.awt.Container;public class ButtonTest01
{
JFrame jf = new JFrame("登录");
private JLabel jl1 = new JLabel("用户名");
private JTextField jtf1 = new JTextField(20);
private JLabel jl2 = new JLabel(" 密码 ");
private JTextField jtf2 = new JTextField(20);
private JPanel buttonPanel = new JPanel();
private JButton jb = new JButton("登录");
public void init() throws Exception
{
jf.setSize(400,300);
jb.setBounds(20,10,200,580);
Container contentPane = jf.getContentPane();
SpringLayout layout = new SpringLayout();
contentPane.setLayout(layout);
contentPane.add(jl1);
contentPane.add(jtf1);
contentPane.add(jl2);
contentPane.add(jtf2);
contentPane.add(jb);
layout.putConstraint(SpringLayout.NORTH, jl1, 20,
SpringLayout.NORTH, contentPane);
layout.putConstraint(SpringLayout.WEST, jl1, 10,
SpringLayout.WEST, contentPane);
layout.putConstraint(SpringLayout.NORTH, jtf1, 20,
SpringLayout.NORTH, contentPane);
layout.putConstraint(SpringLayout.WEST, jtf1, 5,
SpringLayout.EAST, jl1);
layout.putConstraint(SpringLayout.NORTH, jl2, 60,
SpringLayout.NORTH, contentPane);
layout.putConstraint(SpringLayout.WEST, jl2, 10,
SpringLayout.WEST, contentPane);
layout.putConstraint(SpringLayout.NORTH, jtf2, 60,
SpringLayout.NORTH, contentPane);
layout.putConstraint(SpringLayout.WEST, jtf2, 5,
SpringLayout.EAST, jl2);
layout.putConstraint(SpringLayout.NORTH, jb, 100,
SpringLayout.NORTH, contentPane);
layout.putConstraint(SpringLayout.WEST, jb,130,
SpringLayout.WEST, contentPane); jf.setVisible(true);
}
public static void main(String[] arg0)throws Exception
{
ButtonTest01 lft = new ButtonTest01();
lft.init();
}
} 用相对布局SpringLayout可以实现!