请问我该怎样写才能让长方形变长并且将它移下,摆在中间 ?谢谢!
public class SelectSeat extends JPanel {
int a;
Object source;
int counter= 0;
static JFrame frame = new JFrame("Select Seat");
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
try {
createAndShowGui();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
});
}
static void createAndShowGui() throws Exception {
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new SelectSeat());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public SelectSeat() throws Exception
{
JPanel topPanel= new JPanel(new GridLayout(1, 15));
RectDraw rect= new RectDraw();
rect.setPreferredSize(new Dimension(30,25));
topPanel.add(rect);
JToggleButton[] ButtonList = new JToggleButton[30];
JPanel ButtonPanel= new JPanel(new GridLayout(5,15,45,25)); // row,col,hgap,vgap
for(int i = 0; i < 30; i++) {
a=i+1;
ButtonList[i]= new JToggleButton(""+a);
ButtonPanel.add(ButtonList[i]);
}
JPanel bottomPanel = new JPanel(new GridLayout(1,5,40,20));
JButton cancel= new JButton("Back");
JButton confirm= new JButton("Next");
bottomPanel.add(cancel);
bottomPanel.add(confirm);
setLayout(new BorderLayout(0, 45));
add(topPanel, BorderLayout.PAGE_START);
add(ButtonPanel, BorderLayout.CENTER);
add(bottomPanel, BorderLayout.PAGE_END);
ButtonPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
bottomPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 20, 20)); //top,left,bottom,right
}
private static class RectDraw extends JPanel
{
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawRect(29,550,300,250);
g.setColor(Color.GRAY);
g.fillRect(20,5,330,25);
g.setColor(Color.BLUE);
g.drawString("Movie Sceen", 150, 20);
}
}
}
这是你自己写的代码吗?
应该是说那个灰色长方形吧。改最后一个函数里drawRect的参数就可以了,分别控制灰色长方形和蓝色字符串。
如果是eciplise的话,可以使用插件来直接构建布局的。(我也只用过一个星期的swing)