JPanel
を使用するを作成しようとしていFlowLayout
ます。このパネルはcontainer
usingの内部に配置されBorderLayout
ます。これcontainer
は、 を使用してカードに追加されCardLayout
ます。FLowLayout
パネルの左下隅にある小さなボックスを使用するパネルを希望しますBorderLayout
。どうすればいいですか?使用しましsettingsPanel.setPreferredSize(new Dimension(10, 425));
たが、設定したサイズに関係なく、幅はパネル全体に広がりますが、高さは変わります。幅を変更するにはどうすればよいですか?
コード:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
public class Main {
//Settings Panel variables
JLabel settingsTitle = new JLabel("Settings");
public Main()
{
JPanel mainCard = new JPanel(new BorderLayout(8,8));
JPanel settingsPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
settingsTitle.setFont(new Font("TimesRoman", Font.PLAIN, 35));
settingsPanel.add(settingsTitle);
final CardLayout layout = new CardLayout();
final JPanel cards = new JPanel(layout);
cards.add(mainCard, "2");
mainCard.add(settingsPanel, BorderLayout.SOUTH);
settingsPanel.setPreferredSize(new Dimension(10, 425));
settingsPanel.setBorder(BorderFactory.createLineBorder(Color.black));
layout.show(cards, "1");
JFrame window = new JFrame("Test");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.getContentPane().add(cards);
window.setSize(1280, 720);
window.setLocationRelativeTo(null);
window.setResizable(false);
window.setVisible(true);
}
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Main();
}
});
}
}
例: