JAVA一个简单的Swing布局问题



JAVA一个简单实例的布局问题。

各位好, 小弟因刚接触java这块, 对此不是很熟悉, 特此来请教一二。

下面是我的CODE

Java code

package parserCdrTool;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
import javax.swing.border.TitledBorder;
import javax.swing.tree.DefaultMutableTreeNode;

public class parserCdr{

JFrame jf = new JFrame(“话单解析工具”);
JPanel panel = new JPanel();

public void init()
{
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
jf.setBounds(0, 0, width, height);

JMenuBar MenuBar = new JMenuBar();
JMenu file = new JMenu(“文件”);
JMenu edit = new JMenu(“编辑”);
MenuBar.add(file);
MenuBar.add(edit);
jf.setJMenuBar(MenuBar);

JTree tree;
DefaultMutableTreeNode root = new DefaultMutableTreeNode(“计费工具”);
DefaultMutableTreeNode nanjing = new DefaultMutableTreeNode(“南京”);

root.add(nanjing);
tree = new JTree(root);
tree.setRootVisible(true);
tree.setShowsRootHandles(true);
file.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String cmd = e.getActionCommand();
System.out.println(cmd);
}
});

Box box = new Box(BoxLayout.X_AXIS);
Box.createHorizontalStrut(100);
box.add(new JScrollPane(tree));
box.add(new JScrollPane(panel));
jf.add(box);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}

public void initUp()
{
panel.setLayout(new BorderLayout());
JPanel upPanel = new JPanel();
panel.add(upPanel,BorderLayout.NORTH);
upPanel.setBorder(new TitledBorder(“选项卡”));
// upPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
upPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
JButton btnTextParser = new JButton(“文本解析”);
JButton btnFileParser = new JButton(“文件解析”);


upPanel.add(btnTextParser, FlowLayout.LEFT);
upPanel.add(btnFileParser, FlowLayout.LEFT);

JTextArea text = new JTextArea(10,20);
int x = btnTextParser.getX();
int y = btnTextParser.getY();
text.setBounds(btnTextParser.getX(), btnTextParser.getY() + 10, upPanel.getWidth(), 50); <span style=”color: #FF0000;”>//这个地方我怎么都设置不了它的位置 不知道是什么原因?我想要让文本域放到按钮下面</span>
upPanel.add(text);

btnTextParser.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
String cmd = arg0.getActionCommand();
JOptionPane.showMessageDialog(null, cmd, “消息提示”, JOptionPane.ERROR_MESSAGE);
}
});

}
public void initDown()
{
JPanel downPanel = new JPanel();
panel.add(downPanel,BorderLayout.CENTER);
downPanel.setBorder(new TitledBorder(“话单解析结果”));
JButton buttonCancel = new JButton(“取消”);
downPanel.add(buttonCancel);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
parserCdr pc = new parserCdr();
pc.init();
pc.initUp();
pc.initDown();
}

}

代码执行出来的效果图:
我用的是BOX 来布局的 先分为左右两块, 然后再把右面的一块分为上下两块, 左边的数型结构太宽了,我想要把它变窄一些不知道怎么搞, 还望各位能指点一下。不胜感激。
更多 0 分享到:
相关主题推荐: upload 南京 结构 class string
相关帖子推荐:
文本预处理100以内素数和问题axis,axis2 调用c# Object reference not set to an instance of an object.帮忙看看这个是为什么..应届生过几天面试java,想找几套试题做做,有没有人推荐一下如何优化存储过程java flexpaper如何动态改变SwfFile的值struts的注解方式不起作用

对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 回复次数:5
sanshao1314

sanshao1314
Freedom
本版等级:T1
#1 得分:0 回复于: 2014-12-12 21:28:09
怕你们看不见这里 这里把它贴出来。
JTextArea text = new JTextArea(10,20);
int x = btnTextParser.getX();
int y = btnTextParser.getY();
text.setBounds(btnTextParser.getX(), btnTextParser.getY() + 10, upPanel.getWidth(), 50); <span style=”color: rgb(255, 0, 0);”>//这个地方我怎么都设置不了它的位置 不知道是什么原因?我想要让文本域放到按钮下面</span>
upPanel.add(text);
如果您对CSDN论坛有意见和建议 请直接在本帖指教对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
Inhibitory

Inhibitory
公孙二狗
本版等级:T8
Blank Blank Blank
#2 得分:0 回复于: 2014-12-13 10:06:51
layout manager在布局的时候怎么觉得组件的大小呢?
使用组件的 preferred size 决定其大小

所以设置左边的 preferred size就可以了
public void setPreferredSize(Dimension preferredSize)
Sets the preferred size of this component to a constant value. Subsequent calls to getPreferredSize will always return this value. Setting the preferred size to null restores the default behavior.
Parameters:
preferredSize – The new preferred size, or null
关注CSDN社区微信 投稿有礼了!对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
sudawei12345

sudawei12345
sudawei12345
本版等级:T1
#3 得分:0 回复于: 2014-12-13 10:07:36
设置一下JScrollPane的宽度
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
huadis

huadis
huadis
本版等级:T4
#4 得分:0 回复于: 2014-12-13 21:25:45
borderlayout就行了
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
u010778308

u010778308
sayhiyang
本版等级:T1
#5 得分:0 回复于: 2014-12-15 17:35:30
jscrollPane.setSize(width, height)