java getlayout_Java JPanel.getLayout方法代码示例

import javax.swing.JPanel; //导入方法依赖的package包/类

@SuppressWarnings({"unchecked", "rawtypes"})

private void createRelationContent() {

this.setTitle("Relations");

this.relationContentPane = new JPanel();

this.relationContentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

this.relationContentPane.setLayout(new BorderLayout(0, 0));

this.list = new JList();

this.list.setBorder(new LineBorder(new Color(0, 0, 0)));

final JScrollPane scrollPane = new JScrollPane(this.list,

JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

scrollPane.setBorder(new EmptyBorder(5, 5, 5, 5));

this.relationContentPane.add(scrollPane, BorderLayout.CENTER);

final ArrayList relations = Utility.getSuitableRelations(this.type);

final DefaultListModel model = new DefaultListModel<>();

this.list.setModel(model);

this.list.setCellRenderer(new ListCellRender());

for (final String rel : relations) {

model.addElement(rel);

}

final JPanel panel = new JPanel();

final FlowLayout flowLayout = (FlowLayout) panel.getLayout();

flowLayout.setAlignment(FlowLayout.RIGHT);

this.relationContentPane.add(panel, BorderLayout.SOUTH);

final JButton btnNewButton = new JButton("Next");

btnNewButton.addActionListener(new ActionListener() {

@Override

public void actionPerformed(final ActionEvent e) {

if (!MappingWizard.this.list.isSelectionEmpty()) {

MappingWizard.this.createAtomContent();

MappingWizard.this.setContentPane(MappingWizard.this.atomContentPane);

MappingWizard.this.revalidate();

}

}

});

panel.add(btnNewButton);

final JButton btnNewButton_1 = new JButton("Cancel");

btnNewButton_1.addActionListener(new ActionListener() {

@Override

public void actionPerformed(final ActionEvent arg0) {

MappingWizard.this.disposeThis();

}

});

panel.add(btnNewButton_1);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据您提供的代码和报错信息,可以看出问题出在 `msgAddToMsgPanel()` 方法中的这行代码: ``` vertical = scrollPane.getVerticalScrollBar(); ``` 这里的 `scrollPane` 对象是在 `initMsgPanel()` 方法中创建的,但是您在 `msgAddToMsgPanel()` 方法中并没有将 `scrollPane` 对象传递进来,因此在这里使用 `scrollPane` 对象时会出现空指针异常。 解决这个问题的方法是,将 `scrollPane` 对象作为参数传递给 `msgAddToMsgPanel()` 方法。您可以将 `scrollPane` 对象作为类成员变量,然后在 `initMsgPanel()` 方法中初始化它,然后在 `msgAddToMsgPanel()` 方法中直接使用这个成员变量。 修改后的代码如下所示: ``` private JScrollPane scrollPane; // 声明成员变量 private void initMsgPanel() { msgPanel = new JPanel(); msgPanel.setLayout(new BoxLayout(msgPanel, BoxLayout.Y_AXIS)); msgPanel.setBackground(Color.WHITE); scrollPane = new JScrollPane(msgPanel); // 初始化成员变量 scrollPane.setBounds(5, 5, 370, 330); add(scrollPane); } private void msgAddToMsgPanel(String msg, int align) { System.out.println("==========msgAddToMsgPanel===========" + msg); JLabel msgLbl = new JLabel(msg, SwingConstants.CENTER); msgLbl.setForeground(Color.decode("#61565A")); msgLbl.setBackground(Color.decode("#BACCD9")); msgLbl.setSize(50, 25); msgLbl.setBorder(BorderFactory.createLineBorder(Color.getColor("#8FB2C9"), 2, true)); msgLbl.setOpaque(true); JPanel itemPanel = new JPanel(); itemPanel.setBackground(Color.WHITE); itemPanel.setPreferredSize(new Dimension(msgPanel.getWidth(), 25)); itemPanel.add(msgLbl); FlowLayout layout = (FlowLayout) itemPanel.getLayout(); layout.setAlignment(align); msgPanel.add(itemPanel); msgPanel.updateUI(); JScrollBar vertical = scrollPane.getVerticalScrollBar(); // 直接使用成员变量 vertical.setValue(vertical.getMaximum()); } ``` 希望这个修改可以解决您的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值