- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有 Y_Axis 约束的 JPanel,这样每当我添加新组件时,它都会自动添加到新行上。但问题是里面的标签没有左对齐或右对齐。它显示在 JTable 上方一定距离处。 JLabel如何显示在所需的Alginment处。
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
然后我在面板内添加了一个 JLabel。
JLabel labelSemester = new JLabel("Semester 1: ",SwingConstants.LEFT);
panel.add(labelSemester);
在标签之后,我在面板内添加了一个新的 JTable,
// Column Names for the Table
Object[] col_names = {"ID", "Name", "CH", "Marks", "Grade"};
// row data for the table
Object[][] table_rows = {{"CS123","Introduction to Computing",3,80,"A-"}};// One row only
JTable table = new JTable(table_rows, col_names);
panel.add(new JScrollPane(table));
然后我添加了一个 JFrame 并添加了要在框架中显示的面板
JFrame frame = new JFrame();
// frame Title
frame.setTitle("DMC");
frame.setSize(400,400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
// adding panel inside frame
frame.add(panel);
// displaying frame
frame.show()
注意:我添加了自动调整 JTable 列宽的代码。 Output can be seen from attached Image
最佳答案
添加到BoxLayout
中的所有组件都需要相同的alignmentX
,否则你会得到一些奇怪的布局:
//JLabel labelSemester = new JLabel("Semester 1: ",SwingConstants.LEFT);
JLabel labelSemester = new JLabel("Semester 1: ");
label.semester.setAlignmentX(JLabel.LEFT_ALIGNMENT);
panel.add(labelSemester);
...
JTable table = new JTable(table_rows, col_names);
//panel.add(new JScrollPane(table));
JScrollPane scrollPane = new JScrollPane( table );
scrollPane.setAlignmentX(JScrollPane.LEFT_ALIGNMENT);
panel.add( scrollPane );
阅读 Fixing Alignment Problems 上的 Swing BoxLayout 教程中的部分了解更多信息。保留指向教程的链接,了解所有 Swing 基础知识。
关于java - 使用 JPanel 的 Y_AXIS 约束将 JLabel 与 BoxLayout 内的左或右对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46255996/
我正在使用 XlsxWriter 创建柱形图,y 轴名称水平显示在轴的顶部。 y 轴名称的默认方向似乎是垂直的,从下到上读取。 所以我使用名称字体旋转来尝试水平放置它,从左到右阅读。这对于从 -90
import javax.swing.*; import java.awt.*; class MyJPanel extends JPanel { JButton login, register; pu
我有一个带有 Y_Axis 约束的 JPanel,这样每当我添加新组件时,它都会自动添加到新行上。但问题是里面的标签没有左对齐或右对齐。它显示在 JTable 上方一定距离处。 JLabel如何显示在
我是一名优秀的程序员,十分优秀!