#java
#java
Вопрос:
Я знаю, что они являются ответами на эти вопросы, но у меня это вообще не работает. Я пытался :
/*
titleTextLabel.setAlignmentX(JLabel.CENTER_ALIGNMENT);
titleTextLabel.setAlignmentY(JLabel.CENTER_ALIGNMENT);
titleTextLabel.setHorizontalAlignment(SwingConstants.CENTER);
titleTextLabel.setVerticalAlignment(SwingConstants.CENTER); also JLabel.CENTER
/*
Но это вообще не сработало.
Вот полный код, если кто-то хочет проверить.
Если вы думаете, что проблема на стороне JFrame, это не так.Нет места для сбоя (базовый обычный материал)
Также я добавляю фотографию этого кода, а также приложения:https://imgur.com/a/TRkjgYv
package com.practice;
import javax.swing.*;
import java.awt.*;
public class Start extends JFrame {
//Tutaj ustawiamy frame i pierwsze panele z napisem start
// J-Obiekty itd
private JPanel titleTextPanel, titleButtonPanel;
private JLabel titleTextLabel;
private JButton titleButton;
Start(){
this.setSize(1000,800);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(null);
this.setLocationRelativeTo(null);
this.getContentPane().setBackground(Color.darkGray);
setUpStart();
this.setVisible(true);
}
private void setUpStart(){
titleTextPanel=new JPanel();
titleTextPanel.setBounds(200,50,600,150);
titleTextLabel=new JLabel();
titleTextLabel.setFont(new Font("Arial",Font.PLAIN, 30));
titleTextLabel.setAlignmentX(JLabel.CENTER_ALIGNMENT);
titleTextLabel.setAlignmentY(JLabel.CENTER_ALIGNMENT);
titleTextLabel.setText("ASCENDING DARKNESS");
titleTextPanel.add(titleTextLabel);
this.add(titleTextPanel);
}
}
Комментарии:
1. Проверьте tutorialspoint.com /… .
2. Проблема в том, что ваш JLabel центрирует шрифт, но JLabel маленький, и он позиционируется в вашей titleTextPanel с помощью макета потока.
Ответ №1:
У вас есть пара проблем, во-первых, почему у вас есть вторая JPanel? JLabel не центрируется в JPanel, потому что он имеет макет потока.
Вместо использования второй JPanel вы можете просто использовать JLabel.
private void setUpStart(){
titleTextLabel=new JLabel();
titleTextLabel.setBounds(200,50,600,150);
titleTextLabel.setFont(new Font("Arial",Font.PLAIN, 30));
titleTextLabel.setHorizontalAlignment(JLabel.CENTER);
titleTextLabel.setVerticalAlignment(JLabel.CENTER);
titleTextLabel.setText("ASCENDING DARKNESS");
titleTextLabel.setOpaque(true);
titleTextLabel.setBackground(Color.WHITE);
this.add(titleTextLabel);
}
Комментарии:
1. что вы подразумеваете под второй JPanel. В коде есть только один
2.
titleTextPanel
это другая JPanel, в вашем JFrame есть панель содержимого, которая также является JPanel. Вы устанавливаете для его макета значение null.3. вау, спасибо . Я думал, что должен добавить метку в панель, как будто метка была без границ и т.д. Большое вам спасибо
4. я хочу спросить, могу ли я добавить кнопку без JPanel. Как и его панель, верно?
5. Технически, есть панель, к которой добавляется компонент. В JFrame есть панель, панель содержимого. Если вы хотите добавить кнопку на панель содержимого, вы можете. Вы должны указать ему, куда поместить кнопку, хотя, поскольку вы установили макет в null. Например.
myButton.setBounds(x, y, w, h);