📄 seatsgui2.java
字号:
import org.eclipse.swt.*;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.*;
import javax.swing.*;
public class SeatsGUI2 extends JFrame{
private Display myDisplay;
private Shell myShell;
private GC gc;
private Label myLabel1;
private final int noOfRow;
private final int noOfColumn;
private final EconomyClass myEconomyClass1;
private final String[][] out;
private final String[][] out1;
public SeatsGUI2(EconomyClass myEconomyClass)
{
this.myEconomyClass1=myEconomyClass;
noOfRow=myEconomyClass.getNoOfRow();
noOfColumn=myEconomyClass.getNoOfColumn();
out=new String[noOfRow][noOfColumn];
out1=new String[noOfRow][noOfColumn];
for(int i=0;i<noOfRow;i++)
{
for(int j=0;j<noOfColumn;j++)
{
out[i][j]=String.valueOf(myEconomyClass.getMyseats(i, j).getNoOfRow()+1)
+" "+String.valueOf((char)('A'+myEconomyClass.getMyseats(i, j).getNoOfColumn()))
+" "+myEconomyClass.getMyseats(i, j).getType();
}
}
for(int i=0;i<noOfRow;i++)
{
for(int j=0;j<noOfColumn;j++)
{
if(myEconomyClass.getMyseats(i, j).isIsBooked())
{
out1[i][j]="booked";
}
else
{
out1[i][j]="not booked";
}
}
}
myDisplay=new Display();
myShell=new Shell(myDisplay,SWT.CLOSE|SWT.RESIZE);
myShell.setSize(800, 800);
myShell.setText("Seats");
myLabel1=new Label(myShell,SWT.BORDER);
myLabel1.setBounds(10, 10, 550, 30);
myLabel1.setText("Economy Class 2 Seats:");
myShell.addPaintListener(new PaintListener()
{
public void paintControl(PaintEvent event)
{
gc=event.gc;
myShell.addMouseListener(new MouseListener()
{
public void mouseDown(MouseEvent e)
{
boolean change=true;
if(e.x<10) change = false;
if(e.y<40) change = false;
int value_x=(e.x-45)/80;
int value_y=(e.y-45)/38;
if(value_x<0) change=false;
if(value_x>noOfColumn-1) change=false;
if(value_y<0) change=false;
if(value_y>noOfRow-1) change=false;
if(change){
if(myEconomyClass1.getMyseats(value_y, value_x).isIsBooked()){
out1[value_y][value_x]="not booked";
myEconomyClass1.getMyseats(value_y,value_x).setIsBooked(false);
System.out.println((myEconomyClass1.getMyseats(value_y, value_x).getNoOfRow()+1)+" "+((char)('A'+myEconomyClass1.getMyseats(value_y, value_x).getNoOfColumn())+" "+myEconomyClass1.getMyseats(value_y, value_x).getType())+" is not booked ");
}
else if(!myEconomyClass1.getMyseats(value_y, value_x).isIsBooked())
{
out1[value_y][value_x]="booked";
myEconomyClass1.getMyseats(value_y, value_x).setIsBooked(true);
System.out.println((myEconomyClass1.getMyseats(value_y, value_x).getNoOfRow()+1)+" "+((char)('A'+myEconomyClass1.getMyseats(value_y, value_x).getNoOfColumn())+" "+myEconomyClass1.getMyseats(value_y, value_x).getType())+" is booked ");
}
}
myShell.redraw();
}
public void mouseUp(MouseEvent e)
{
}
public void mouseDoubleClick(MouseEvent e)
{
}
});
for(int i=0;i<noOfRow;i++)
{
for(int j=0;j<noOfColumn;j++)
{
gc.drawRectangle(j*80+45,i*38+45, 75, 35);
gc.drawString(out[i][j], 3+j*80+45, 3+i*38+45);
gc.drawString(out1[i][j], 10+j*80+45, 15+i*38+45);
}
}
}
});
myShell.open();
while(!myShell.isDisposed())
{
if(!myDisplay.readAndDispatch())
myDisplay.sleep();
}
myDisplay.dispose();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -