0

上のラベルを表示し、このラベルの下にボタンを表示するこの単純な Java Swing テスト アプリケーションがあります。

package com.techub.exeute;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;

import org.jdesktop.application.SingleFrameApplication;

public class Main extends SingleFrameApplication{
    public static void main(String[] args) {
        Main a = new Main();
        a.startup();
    }

    @Override
    protected void startup() {
        JFrame frame = new JFrame("FrameDemo");
        frame.setMinimumSize(new Dimension(800, 400));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);       

        JLabel myLabel = new JLabel("Hello World !!!", SwingConstants.CENTER);
        myLabel.setFont(new Font("Serif", Font.BOLD, 22));
        myLabel.setBackground(Color.RED);
        myLabel.setOpaque(true);
        myLabel.setPreferredSize(new Dimension(100, 80));

        frame.getContentPane().add(myLabel, BorderLayout.NORTH);

        Button myButton = new Button("Click Me !!!");
        myButton.setMaximumSize(new Dimension(50, 25));
        frame.getContentPane().add(myButton, BorderLayout.CENTER);

        //Display the window.
        frame.pack();
        frame.setVisible(true); 
    }
}

ボタンはBorderLayout.CENTER位置にあります。CENTER問題は、Dimension オブジェクトで Maximum Size プロパティを設定した場合にも、このボタンがその位置で使用可能なすべてのスペースを占有することです。

何が間違っていますか?特定のサイズのボタンを作成するにはどうすればよいですか?

4

4 に答える 4

0

結果を決定するのは、コンポーネントの最大/最小/優先サイズだけではないことに気付きません。これLayoutManagerには多くのことがあり、お気づきのBorderLayoutように、領域全体をコンポーネントで埋めます。

できることは、 を作成しJPanel、たとえばそれを使用して、それを に、FlowLayoutを に配置することです。JPanelBorderLayout.CENTERJButtonJPanel

于 2013-09-24T10:31:46.757 に答える
0

U は BorderLayout を使用しており、ボタンはフレームの左側のすべてのスペースを占めています。setBounds() 関数を使用します。myButton.setBounds(10,200,100,30);

于 2013-09-25T14:20:26.060 に答える
0

あなたはBorderLayoutを使用しています.North regionにはJLabelがあります. JButton は中央に配置されます。JButton は、BorderLayout に従って残されたすべてのスペースを占有します。レイアウトの詳細については、次のリンクを参照してください: http://docs.oracle.com/javase/tutorial/uiswing/layout/using.html

于 2013-09-24T10:41:53.663 に答える