Java按钮工作奇怪

时间:2013-04-04 13:39:32

标签: java swing button

我正在使用Swing在Java中构建GUI。制作按钮并添加按钮的代码如下:

    //Create a button
    JButton exitButton = new JButton("Exit");
    exitButton.setSize(90, 40);
    exitButton.setLocation(800, 450);
    exitButton.setVisible(true);

    //Adding components
    window.getContentPane().add(exitButton);

当我运行应用程序时,按钮出现在整个窗口中,有时会显示为预期,有时不会出现。这是某种java bug还是我sdk的问题。如果您想知道它是什么类型的窗口,

//Create a window
JFrame window = new JFrame("First Window");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
window.setVisible(true);
window.setSize(1000, 550);
window.setLocation(150, 150);

这一切都在静态无效的主要内容中。顺便说一句,我如何通过System.exit(0);获取关闭窗口的按钮(我是初学者,这是我的第一个自编GUI)

3 个答案:

答案 0 :(得分:1)

你需要一个布局。请参阅A Visual Guide to Layout Managers

另请查看我的教程here.

答案 1 :(得分:0)

我有这个示例代码。这可能是有用的简单摆动按钮

package com.ack.gui.swing.simple;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;

public class SimpleSwingButtons extends JFrame {
  public static void main( String[] argv ) {
    SimpleSwingButtons myExample = new SimpleSwingButtons( "Simple Swing Buttons" );
  }

  public SimpleSwingButtons( String title ) {
    super( title );
    setSize( 150, 150 );
    addWindowListener( new WindowAdapter() {
      public void windowClosing( WindowEvent we ) {
        dispose();
        System.exit( 0 );
      }
    } );
    init();
    setVisible( true );
  }

  private void init() {
    JPanel my_panel = new JPanel();
    my_panel.setLayout( new GridLayout( 3, 3 ) );
    for( int i = 1; i < 10; i++ ) {
      ImageIcon icon = new ImageIcon( i + ".gif" );
      JButton jb = new JButton( icon );
      jb.setToolTipText( i + ".gif" );
      my_panel.add( jb );
    }
    getContentPane().add( my_panel );
    my_panel.setBorder( BorderFactory.createEtchedBorder() );
  }
}

礼貌Java.happycodings

答案 2 :(得分:-2)

您必须检查布局,如果要对组件使用自定义位置,请将Layout设置为null并使用setBounds(x,y,weight,height)方法。

JFrame window = new JFrame("First Window");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
window.setLayout(null);

JButton exitButton = new JButton("Exit");
exitButton.setBounds(15,45,150,30);//This is just an example
exitButton.setVisible(true);

最好的问候。