在java中需要一些GUI帮助

时间:2010-05-27 05:48:25

标签: java swing gui-designer

我正在使用java中的GUI并且因为移动对象而陷入困境。

请访问这个youtube视频我做了一个简短的演示,让你们看看我想要做什么。我是GUI的新手,因为我从未被教过做过GUI。

以下是链接:http://www.youtube.com/watch?v=up1LV5r-NSg

3 个答案:

答案 0 :(得分:5)

我看到你正在使用GUI设计器。我强烈建议“手动”构建GUI,在这种情况下,你的代码是IMO更清晰(我并不是说所有的GUI设计师都会产生错误的代码,但它几乎总是难以阅读,编辑它会很难不使用完全相同的GUI设计师)。一旦您熟悉GUI设计,然后尝试GUI设计师,看看是什么让您更舒服。

请参阅:http://java.sun.com/docs/books/tutorial/uiswing/layout/using.html

在您的情况下,您可以创建一个BorderLayout,在面板/框架的“南部”,您可以放置​​一个面板,其中FlowLayout将其组件对齐到左侧。然后使用FlowLayout将您的按钮添加到面板。

一个小小的演示:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;

public class LayoutDemo extends JFrame {

    LayoutDemo() {
        super("LayoutDemo");
        super.setSize(400, 200);
        super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        createGUI();
        super.setVisible(true);
    }

    private void createGUI() {
        // set the layout of this frame
        super.setLayout(new BorderLayout());

        // create a panel to put the button on
        final JPanel bottomPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));

        // create a text area to put in the center
        final JTextArea textArea = new JTextArea();

        // create the search button
        final JButton searchButton = new JButton("search");

        // add a listener to the button that add some text to the text area
        searchButton.addActionListener(new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent e) {
                textArea.setText(textArea.getText() + "pressed search on " + (new Date()) + "\n");
            }
        });

        // add the button to the bottom panel
        bottomPanel.add(searchButton);

        // wrap a scroll-pane around the text area and place it on the center of this frame
        super.add(new JScrollPane(textArea), BorderLayout.CENTER);

        // put the bottom panel (containing the button) on the 'south' of this frame
        super.add(bottomPanel, BorderLayout.SOUTH);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new LayoutDemo();
            }
        });
    }
}

产生

alt text http://img689.imageshack.us/img689/5874/guiq.png


修改

要更多地移动按钮,请使用构造函数new FlowLayout(FlowLayout.LEFT, int hgap, int vgap)

其中hgap是左右组件之间的间隙(以像素为单位),vgap是上下组件之间的间隙(以像素为单位)。

尝试:

final JPanel bottomPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 5, 10));

请注意,按钮和文本区域之间的空间也会略有增加!

答案 1 :(得分:3)

了解fest swing test和miglayout! fest swing测试使您能够运行您的gui场景。 和Miglayout,我认为,也很容易使用布局库。

Fest: http://fest.easytesting.org/swing/wiki/pmwiki.php
MigLayout: http://www.miglayout.com/

答案 2 :(得分:0)

如果您不想学习ins& Java Swing的出局并没有尝试创建一些花哨的GUI,那么像你正在使用的GUI设计师应该没问题。

您无法做的事情似乎是您特定IDE的限制,因此尝试Netbeans可能会有所帮助。您始终可以使用生成的GUI代码(尽管可能很难看),然后将其插回到其他IDE中的项目中。