今日は Eclipse4.4 LUNAでjavaのプログラムを学習しています。 GridBagLayoutでJTableの横方向のサイズをボタンの2個分にする 設定方法があれば、お教えください。 (下記のコード参照) ================= import java.awt.Color; import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; /* import java.awt.Color; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; */ public class Sandbox extends JFrame { JFrame frame; public static void main(String[] args) { Sandbox frame=new Sandbox(); } Sandbox() { frame=new JFrame();//JFrame frame;を使用 frame.setTitle("SSCCE");//上の文が無いときは、thisでよい。 frame.setBounds(10,10,400,400);//上の文が無いときは、thisでよい。 int wx=75; int wy=20; String dataA[][]={ {"Date","1015/04/14"}, {"Maker","ACO"}, {"Type","VM315"}, {"Voltage","12V"}, {"Distance","20cm"} }; String titleA[]={ "Item","Data" }; //============================= JPanel panel = new JPanel(); GridBagLayout layout = new GridBagLayout(); panel.setLayout(layout); GridBagConstraints gbc = new GridBagConstraints(); //============================= JButton button1=new JButton("button1"); GB_Layout(layout, button1, gbc, 0, 0, wx, wy); panel.add(button1, gbc); //==================================== JButton button2=new JButton("button2"); GB_Layout(layout, button2, gbc, 1, 0, wx, wy); //============================== panel.add(button2, gbc); //============================== gbc.gridx = 0; gbc.gridy = 1; gbc.insets = new Insets(10, 10, 10, 10); gbc.fill = GridBagConstraints.BOTH; gbc.gridx = 0; gbc.gridy = 1; gbc.weightx = 4; gbc.weighty = 1; JTable tablexA = new JTable(dataA, titleA); tablexA.setPreferredSize(new Dimension(140,120));//scpのサイズ:機能する--->センタ配置 tablexA.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);//JScrollPaneが有効 // tablexA.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);//JScrollPaneが有効 JScrollPane scp2=new JScrollPane(tablexA); scp2.setPreferredSize(new Dimension(140,120));//scpのサイズ:機能する--->センタ配置 scp2.setBackground(Color.yellow);//scpのsetBackgroundの色:機能せず panel.add(scp2, gbc); frame.add(panel); frame.pack(); frame.setVisible(true); /* this.add(panel); this.pack(); this.setVisible(true); */ System.out.println("AAAA"); //==================================== } void GB_Layout(GridBagLayout layout, JButton button, GridBagConstraints gbc, int x, int y, int wx, int wy){ button.setPreferredSize(new Dimension(wx,wy)); button.setMargin(new Insets(0, 0, 0, 0)); gbc.gridx = x; gbc.gridy = y; gbc.gridheight = 1; gbc.weightx = 1.0d; gbc.weighty = 1.0d; //gbc.fill = GridBagConstraints.HORIZONTAL; //gbc.fill = GridBagConstraints.LINE_START; //gbc.fill = GridBagConstraints.LINE_END; //gbc.fill = GridBagConstraints.LAST_LINE_START; //gbc.fill = GridBagConstraints.EAST; //gbc.fill = GridBagConstraints.BOTH; gbc.insets = new Insets(0, 0, 0, 0); layout.setConstraints(button, gbc); } }
↧