Εφη*_*υθά 1 java swing jbutton layout-manager
嗨,我想把我的按钮放在南方位置!我怎样才能做到这一点?这是我的代码:
import javax.swing.Icon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.io.*;
import java.util.*;
import javax.swing.JButton;
public class TableDemo extends JPanel {
    private static Icon leftButtonIcon;
    private boolean DEBUG = false;
     // added static infront becuase got non static referencing error
static List<String[]> rosterList = new ArrayList<String[]>();
    public TableDemo() {
        super(new GridLayout(1,0));
        JTable table = new JTable(new MyTableModel());
        table.setPreferredScrollableViewportSize(new Dimension(500, 70));
        table.setFillsViewportHeight(true);
       JButton button=new JButton("Buy it");
       button.setSize(30,60);
        button.add(button);
        //Create the scroll pane and add the table to it.
        JScrollPane scrollPane = new JScrollPane(table);
        //Add the scroll pane to this panel.
        add(scrollPane);
         //create a button
    }
    class MyTableModel extends AbstractTableModel {
        private String[] columnNames = { "???????", "????????", "????", "?????????", "???????", "?????"};
        public int getColumnCount() {
            return columnNames.length;
        }
        public int getRowCount() {
            return rosterList.size();
        }
        @Override
        public String getColumnName(int col) {
            return columnNames[col];
        }
     public Object getValueAt(int row, int col)
        {
            return rosterList.get(row)[col];
        }
    }
    private static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frame = new JFrame("TableDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //Create and set up the content pane.
        TableDemo newContentPane = new TableDemo();
        newContentPane.setOpaque(true); //content panes must be opaque
        frame.setContentPane(newContentPane);
        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }
像这样的东西?

请参阅代码中的注释.
import javax.swing.Icon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.border.EmptyBorder;
import java.awt.Dimension;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.io.*;
import java.util.*;
import javax.swing.JButton;
public class TableDemo extends JPanel {    
    private static Icon leftButtonIcon;
    private boolean DEBUG = false;
     // added static infront becuase got non static referencing error
static List<String[]> rosterList = new ArrayList<String[]>();
    public TableDemo() {
        super(new BorderLayout(3,3));
        JTable table = new JTable(new MyTableModel());
        table.setPreferredScrollableViewportSize(new Dimension(500, 70));
        table.setFillsViewportHeight(true);
       JButton button=new JButton("Buy it");
       // Rarely has the intended effect.
       // also best not to presume we can guess the size
       // a component needs to be.
       //button.setSize(30,60);
       // cannot add a button to itself!
        //button.add(button);
        JPanel buttonCenter = new JPanel( new FlowLayout(FlowLayout.CENTER) );
        // allow the button to be centered in buttonCenter,
        // rather than stretch across the width of the SOUTH
        // of the TableDemo
        buttonCenter.add(button);
        add(buttonCenter, BorderLayout.SOUTH);
        //Create the scroll pane and add the table to it.
        JScrollPane scrollPane = new JScrollPane(table);
        //Add the scroll pane to this panel.
        add(scrollPane, BorderLayout.CENTER);
         //create a button
        // add a nice border
        setBorder(new EmptyBorder(5,5,5,5));
    }
    class MyTableModel extends AbstractTableModel {
        // apologies about the column names
        private String[] columnNames = { "??d????", "??s?t?ta", "??µ?", "?e????af?", "???e???", "??tsa"};
        public int getColumnCount() {
            return columnNames.length;
        }
        public int getRowCount() {
            return rosterList.size();
        }
        @Override
        public String getColumnName(int col) {
            return columnNames[col];
        }
     public Object getValueAt(int row, int col)
        {
            return rosterList.get(row)[col];
        }
    }
    private static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frame = new JFrame("TableDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //Create and set up the content pane.
        TableDemo newContentPane = new TableDemo();
        // JPanels are opaque by default!
        //newContentPane.setOpaque(true); //content panes must be opaque
        frame.setContentPane(newContentPane);
        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }
    public static void main(String[] args) {
        // Should be done on the EDT.
        // Left as an exercise for the reader.
        TableDemo.createAndShowGUI();
    }
}
| 归档时间: | 
 | 
| 查看次数: | 15244 次 | 
| 最近记录: |