getContentPane()。setBackground(Color.white)、 を試してみましたが、テーブルとスクロールペインを白く設定しようとしました。JPanelの背景色を設定する
@SuppressWarnings("serial")
public class BalanceFrame extends JFrame {
private JTable table;
public BalanceFrame(String title, String value) throws Exception {
super(title);
SpringLayout springLayout = new SpringLayout();
getContentPane().setLayout(springLayout);
JScrollPane scrollPane = new JScrollPane();
springLayout.putConstraint(SpringLayout.NORTH, scrollPane, 0, SpringLayout.NORTH, getContentPane());
springLayout.putConstraint(SpringLayout.WEST, scrollPane, 0, SpringLayout.WEST, getContentPane());
springLayout.putConstraint(SpringLayout.SOUTH, scrollPane, 0, SpringLayout.SOUTH, getContentPane());
springLayout.putConstraint(SpringLayout.EAST, scrollPane, 0, SpringLayout.EAST, getContentPane());
getContentPane().add(scrollPane);
ResultSet res = Operations.writeBalanceResult(value);
JTable table = new JTable(Operations.writeResult(res));
table.setAutoResizeMode(table.AUTO_RESIZE_OFF);
scrollPane.setViewportView(table);
for (int column = 0; column < table.getColumnCount(); column++) {
TableColumn tableColumn = table.getColumnModel().getColumn(column);
int preferredWidth = tableColumn.getMinWidth();
int maxWidth = tableColumn.getMaxWidth();
for (int row = 0; row < table.getRowCount(); row++) {
TableCellRenderer cellRenderer = table.getCellRenderer(row, column);
Component c = table.prepareRenderer(cellRenderer, row, column);
int width = c.getPreferredSize().width + table.getIntercellSpacing().width;
preferredWidth = Math.max(preferredWidth, width);
if (preferredWidth >= maxWidth) {
preferredWidth = maxWidth;
break;
}
}
TableCellRenderer headerRenderer = tableColumn.getHeaderRenderer();
if (headerRenderer == null) {
headerRenderer = table.getTableHeader().getDefaultRenderer();
}
Object headerValue = tableColumn.getHeaderValue();
Component headerComp = headerRenderer.getTableCellRendererComponent(table, headerValue, false, false, 0, column);
preferredWidth = Math.max(preferredWidth, headerComp.getPreferredSize().width);
if (preferredWidth >= maxWidth) {
preferredWidth = maxWidth;
break;
}
tableColumn.setPreferredWidth(preferredWidth + 6);
}
}
}
この私が色を変更するために得ることができないフレームのみで、それは別のクラスで、ここで作成されています - 私は正常にこの
を行うことによって色を変更するには、別のパネルを得ているmenuItemBalanceSheet.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
balanceFrame = new BalanceFrame("BalanceSheet", value);
} catch (Exception e1) {
e1.printStackTrace();
}
balanceFrame.setSize(1200, 600);
balanceFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
balanceFrame.setVisible(true);
}
});
companyPanel = new CompanyPanel();
companyPanel.setBackground(Color.white);
変更しようとしているのがバランスフレームですか? – Aaron
@Aaronはいそれは – Zack
です。より良いヘルプのためには、すぐに[mcve]を投稿してください。あなたの投稿に何枚目のアップノートがあるのかわからない – MasterBlaster