![](/img/trans.png)
[英]How can I add JLabel and JTextField to only the bottom of the center of BorderLayout?
[英]How do I center a JTextfield
我在程序中居中放置JTexfield時遇到麻煩.Textfield似乎沒有與JButton對齊。 我試過使用x.setHoriontalAlignment(JTextfield.CENTER); 但無濟於事。 有任何想法嗎?
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JPanel;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.GridBagLayout;
public class WidgetProject implements ActionListener
{
//class constants
private static final Color BUTTON_COLOUR1 = Color.WHITE;
private static final int BUTTON_HEIGHT = 75;
private static final int BUTTON_WIDTH = 400;
private static final int TEXTFIELD_HEIGHT = 400;
private static final int TEXTFIELD_WIDTH = 50;
private static final String SECONDS_PER_MINUTE = "Seconds to Minutes or Minutes to Seconds";
private static final String BUTTON2_MODIFIED_LABEL = "yes";
private static final String POUNDS_PER_KILOGRAM = "Pounds to Kilograms or Kilograms to Pounds";
private static final String CHANGE_MY_LABEL = "1";
private static final int HEIGHT = 400;
private static final int WIDTH = 400;
// instance fields
private JButton button1;
private JButton button2;
private JButton button3;
private JButton button4;
private JFrame frame;
private JTextField textInput;
private JPanel panel;
/**
* A free-standing frame with two buttons.
*
* @param title the title of this frame
*/
public WidgetProject(String title)
{
// Establish the frame.
frame = new JFrame(title);
frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(WIDTH, HEIGHT));
// Establish button dimensions.
Dimension buttonDimension = new Dimension(BUTTON_WIDTH, BUTTON_HEIGHT);
// Establish Textfield dimensions.
Dimension textDimension = new Dimension(TEXTFIELD_HEIGHT, TEXTFIELD_WIDTH);
// Create and add the first button.
button1 = new JButton(SECONDS_PER_MINUTE);
button1.setActionCommand(CHANGE_MY_LABEL);
button1.addActionListener(this);
button1.setPreferredSize(buttonDimension);
button1.setMinimumSize(buttonDimension);
button1.setMaximumSize(buttonDimension);
button1.setBackground(BUTTON_COLOUR1);
frame.add(button1);
// Create and add the second button.
button2 = new JButton(POUNDS_PER_KILOGRAM);
button2.setActionCommand(CHANGE_MY_LABEL);
button2.addActionListener(this);
button2.setPreferredSize(buttonDimension);
button2.setMinimumSize(buttonDimension);
button2.setMaximumSize(buttonDimension);
button2.setBackground(BUTTON_COLOUR1);
frame.add(button2);
// Create an input text field.
textInput = new JTextField(20);
textInput.setPreferredSize(textDimension);
textInput.setMinimumSize(textDimension);
textInput.setMaximumSize(textDimension);
textInput.setHorizontalAlignment(JTextField.CENTER);
panel = new JPanel();
panel.add(textInput);
String string = textInput.getText();
// Display the frame and text field.
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.add(textInput);
} //構造函數ButtonDuo的結尾
首先: x.setHorizontalAlignment(JTextField.CENTER);
將文本設置在中心而不是JTextField
如果要在中心放置JTextField,只需創建panel = new JPanel();
並在其上添加按鈕,如下所示: panel.add(button1);
panel.add(button2);
panel.add(textInput, BorderLayout.CENTER);
--->在這里,我將textInput
設置在jpanel的中心
然后:將“ Jpanel”添加到Jframe中: frame.add(panel);
嘗試這個 :
package javaapplication1;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JPanel;
class WidgetProject implements ActionListener {
//class constants
private static final Color BUTTON_COLOUR1 = Color.WHITE;
private static final int BUTTON_HEIGHT = 75;
private static final int BUTTON_WIDTH = 400;
private static final int TEXTFIELD_HEIGHT = 400;
private static final int TEXTFIELD_WIDTH = 50;
private static final String SECONDS_PER_MINUTE = "Seconds to Minutes or Minutes to Seconds";
private static final String BUTTON2_MODIFIED_LABEL = "yes";
private static final String POUNDS_PER_KILOGRAM = "Pounds to Kilograms or Kilograms to Pounds";
private static final String CHANGE_MY_LABEL = "1";
private static final int HEIGHT = 400;
private static final int WIDTH = 400;
// instance fields
private JButton button1;
private JButton button2;
private JButton button3;
private JButton button4;
private JFrame frame;
private JTextField textInput;
private JPanel panel;
/**
* A free-standing frame with two buttons.
*
* @param title the title of this frame
*/
public WidgetProject(String title) {
// Establish the frame.
frame = new JFrame(title);
panel = new JPanel();
frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(WIDTH, HEIGHT));
// Establish button dimensions.
Dimension buttonDimension = new Dimension(BUTTON_WIDTH, BUTTON_HEIGHT);
// Establish Textfield dimensions.
Dimension textDimension = new Dimension(TEXTFIELD_HEIGHT, TEXTFIELD_WIDTH);
// Create and add the first button.
button1 = new JButton(SECONDS_PER_MINUTE);
button1.setActionCommand(CHANGE_MY_LABEL);
button1.addActionListener(this);
button1.setPreferredSize(buttonDimension);
button1.setMinimumSize(buttonDimension);
button1.setMaximumSize(buttonDimension);
button1.setBackground(BUTTON_COLOUR1);
panel.add(button1);
// Create and add the second button.
button2 = new JButton(POUNDS_PER_KILOGRAM);
button2.setActionCommand(CHANGE_MY_LABEL);
button2.addActionListener(this);
button2.setPreferredSize(buttonDimension);
button2.setMinimumSize(buttonDimension);
button2.setMaximumSize(buttonDimension);
button2.setBackground(BUTTON_COLOUR1);
panel.add(button2);
// Create an input text field.
textInput = new JTextField(20);
textInput.setPreferredSize(textDimension);
textInput.setMinimumSize(textDimension);
textInput.setMaximumSize(textDimension);
textInput.setHorizontalAlignment(JTextField.CENTER);
panel.add(textInput, BorderLayout.CENTER);
String string = textInput.getText();
frame.add(panel);
// Display the frame and text field.
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
} // end of constructor ButtonDuo
@Override
public void actionPerformed(ActionEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
import javax.swing.*;
import java.awt.*;
public class JTableComponent{
public static void main(String[] args)
{
new JTableComponent();
}
public JTableComponent(){
JFrame // Establish the frame.
frame = new JFrame("title");
frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(700, 700));
// Establish button dimensions.
Dimension buttonDimension = new Dimension(120, 120);
// Establish Textfield dimensions.
Dimension textDimension = new Dimension(110, 110);
// Create an input text field.
JTextField textInput = new JTextField(20);
textInput.setPreferredSize(textDimension);
textInput.setMinimumSize(textDimension);
textInput.setMaximumSize(textDimension);
textInput.setHorizontalAlignment(JTextField.CENTER);
JPanel panel = new JPanel();
panel.add(textInput);
String string = textInput.getText();
// Display the frame and text field.
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.add(textInput);
}
}
我已經檢查了您的代碼。它已經在中間了。
只需使用setBounds
屬性。
Jtextfield.setBounds(x,x,x,x);
第一個x將TextField
向左或向右移動。 第二個將其向上或向下移動。 第三個是寬度,最后一個是長度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.