⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pilotgui.java.svn-base

📁 這是一個JAVA語言寫的多代理人程式用來模擬飛機起飛或是降落的程式
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
package gui;import javax.swing.*;import javax.swing.event.*;import java.awt.Graphics;import java.awt.*;import java.awt.event.*;import java.awt.Color;import java.util.List;import java.awt.Graphics2D;import java.awt.Image;import java.awt.MediaTracker;import java.awt.event.MouseEvent;import java.awt.event.MouseMotionAdapter;import java.awt.image.BufferedImage;import world.*;//import agents.GroundControllerAgent;//import agents.LocalControllerAgent;public class PilotGUI extends JPanel{	private JLabel runwayTitle;	private JLabel runwayLabel;	private JLabel gateTitle;	private JLabel gateLabel;	private JLabel approachTitle;	private JLabel approachLabel;	private JLabel destinationTitle;	private JLabel destinationLabel;	private JLabel pathTitle;	private JLabel pathLabel;	private JLabel localControllerTitle;	private JLabel localControllerLabel;	private JLabel lastPathTitle;	private JLabel lastPathLabel;	private JLabel taxiInstructionsTitle;	private JLabel taxiInstructionsLabel;	private JLabel arrivalTitle;	private JLabel arrivalLabel;	private JLabel reportTitle;	private JLabel reportLabel;	private JLabel groundControllerTitle;	private JLabel groundControllerLabel;	private JLabel procedureTitle;	private JLabel procedureLabel;	private JLabel takeoffRunwayTitle;	private JLabel takeoffRunwayLabel;	private JLabel departureControlTitle;	private JLabel departureControlLabel;	private JPanel viewInfo;	private JPanel viewControls;	private RadioWindow radioWindow;	private Fuel fuel;	private CoPilotEnabler coPilotEnabler;	private Speed speed;	private Thrust thrust;	private Altitude altitude;	private Yoke yoke;	private MessageWindow messageWindow; 	private AttitudeIndicator attitudeIndicator;		private PilotHelperGUI pilotAgent;	private CoPilotGUI coPilot;	public PilotGUI()	{		pilotAgent = null;		coPilot = null;				viewInfo = new JPanel();		viewControls = new JPanel();		radioWindow = new RadioWindow();		fuel = new Fuel();		coPilotEnabler = new CoPilotEnabler();		speed = new Speed();		thrust = new Thrust();		altitude = new Altitude();		attitudeIndicator = new AttitudeIndicator();		yoke = new Yoke();		messageWindow = new MessageWindow();		runwayTitle = new JLabel( "Runway" );		runwayLabel = new JLabel( "" );		gateTitle = new JLabel( "Gate" );		gateLabel = new JLabel( "" );		approachTitle = new JLabel( "Approach" );		approachLabel = new JLabel( "" );		destinationTitle = new JLabel( "Destination" );		destinationLabel = new JLabel( "" );		pathTitle = new JLabel( "Path" );		pathLabel = new JLabel( "" );		localControllerTitle = new JLabel( "Local Controller" );		localControllerLabel = new JLabel( "" );		lastPathTitle = new JLabel( "Last Path" );		lastPathLabel = new JLabel( "" );		taxiInstructionsTitle = new JLabel( "Taxi Instructions" );		taxiInstructionsLabel = new JLabel( "" );		arrivalTitle = new JLabel( "Arrival" );		arrivalLabel = new JLabel( "" );		reportTitle = new JLabel( "Report" );		reportLabel = new JLabel( "" );		groundControllerTitle = new JLabel( "Ground Controller" );		groundControllerLabel = new JLabel( "" );		procedureTitle = new JLabel( "Procedure" );		procedureLabel = new JLabel( "" );		takeoffRunwayTitle = new JLabel( "Takeoff Runway" );		takeoffRunwayLabel = new JLabel( "" );		departureControlTitle = new JLabel( "DepartureControl" );		departureControlLabel = new JLabel( "" );		viewControls.setLayout( new GridLayout( 2, 5 ) );		viewControls.add( fuel );		viewControls.add( speed );		viewControls.add( altitude );		viewControls.add( attitudeIndicator );		viewControls.add( radioWindow );		viewControls.add( coPilotEnabler );		viewControls.add( thrust );		viewControls.add( new JPanel() );		viewControls.add( yoke );		viewControls.add( messageWindow );		viewInfo.setLayout( new GridLayout( 4, 7 ) );				viewInfo.add( runwayTitle );		viewInfo.add( gateTitle );		viewInfo.add( approachTitle );		viewInfo.add( destinationTitle );		viewInfo.add( pathTitle );		viewInfo.add( localControllerTitle );		viewInfo.add( lastPathTitle );		viewInfo.add( runwayLabel );		viewInfo.add( gateLabel );		viewInfo.add( approachLabel );		viewInfo.add( destinationLabel );		viewInfo.add( pathLabel );		viewInfo.add( localControllerLabel );		viewInfo.add( lastPathLabel );		viewInfo.add( taxiInstructionsTitle );		viewInfo.add( arrivalTitle );		viewInfo.add( reportTitle );		viewInfo.add( groundControllerTitle );		viewInfo.add( procedureTitle );		viewInfo.add( takeoffRunwayTitle );		viewInfo.add( departureControlTitle );		viewInfo.add( taxiInstructionsLabel );		viewInfo.add( arrivalLabel );		viewInfo.add( reportLabel );		viewInfo.add( groundControllerLabel );		viewInfo.add( procedureLabel );		viewInfo.add( takeoffRunwayLabel );		viewInfo.add( departureControlLabel );		GridBagLayout gbl = new GridBagLayout();		GridBagConstraints c = new GridBagConstraints();				setLayout( gbl );		//setLayout( new GridLayout( 2, 1 ) );		c.gridwidth = GridBagConstraints.REMAINDER;		c.fill = GridBagConstraints.BOTH;		c.weightx = 1.0;		gbl.setConstraints( viewInfo, c );		add( viewInfo );		gbl.setConstraints( viewControls, c );		add( viewControls );	}		public void setPilotAgent( PilotHelperGUI pilotAgent )	{		this.pilotAgent = pilotAgent;	}		public void setCoPilot( CoPilotGUI coPilotTemp )	{		coPilot = coPilotTemp;	}	public Fuel getFuel()	{		return fuel;	}	public Speed getSpeed()	{		return speed;	}	public Altitude getAltitude()	{		return altitude;	}	public AttitudeIndicator getAttitudeIndicator()	{		return attitudeIndicator;	}	public CoPilotEnabler getCoPilotEnabler()	{		return coPilotEnabler;	}	public Thrust getThrust()	{		return thrust;	}	public Yoke getYoke()	{		return yoke;	}		public RadioWindow getRadioWindow()	{		return radioWindow;	}	public MessageWindow getMessageWindow()	{		return messageWindow;	}	public class AttitudeIndicator extends JPanel	{		private final int X_OFFSET = 30;		private final int Y_OFFSET = 20;		private final int X_CENTER = 50;		private final int Y_CENTER = 50;		private final int RADIUS = 50;		private final int SMALL_RADIUS = 4;		private final int HALF_LINE_LENGTH = 50;		private double pitch;		private double roll;		public AttitudeIndicator()		{			this( 0.0, 0.0 );		}		public AttitudeIndicator( double pitchTemp, double rollTemp )		{			pitch = pitchTemp;			roll = rollTemp;			setBackground( Color.BLACK );		}		protected void paintComponent( Graphics g )		{			super.paintComponent( g );			g.setColor( Color.WHITE );			g.fillOval( X_OFFSET, Y_OFFSET, 2 * RADIUS, 2 * RADIUS );			g.setColor( Color.BLACK );			g.drawOval( X_OFFSET + RADIUS - SMALL_RADIUS, Y_OFFSET + RADIUS - SMALL_RADIUS, 2 * SMALL_RADIUS, 2 * SMALL_RADIUS );			g.drawLine( X_OFFSET, Y_OFFSET + RADIUS, X_OFFSET + 2 * RADIUS, Y_OFFSET + RADIUS );			g.drawLine( X_OFFSET + RADIUS, Y_OFFSET + RADIUS, X_OFFSET + RADIUS, Y_OFFSET + 2 * RADIUS );			double rollRadians = roll * Math.PI / 180.0; 			int pitchX = (int) ( pitch * Math.sin( rollRadians ) );			int pitchY = (int) ( pitch * Math.cos( rollRadians ) );			int xPositionRight = X_CENTER + pitchX + (int) ( (double) HALF_LINE_LENGTH * Math.cos( rollRadians ) );			int xPositionLeft = -xPositionRight + ( 2 * ( X_CENTER + pitchX ) );			int yPositionRight = Y_CENTER + pitchY + (int) ( (double) HALF_LINE_LENGTH * -Math.sin( rollRadians ) );			int yPositionLeft = -yPositionRight + ( 2 * ( Y_CENTER + pitchY ) );			g.drawLine( X_OFFSET + xPositionRight, Y_OFFSET + yPositionRight, X_OFFSET + xPositionLeft, Y_OFFSET + yPositionLeft );		}		public void setPitch( double pitchTemp )		{			pitch = pitchTemp;			repaint();		}		public double getPitch()		{			return pitch;		}		public void setRoll( double rollTemp )		{			roll = rollTemp;			repaint();		}		public double getRoll()		{			return roll;		}	}	public class Fuel extends JPanel	{		private double fuel;		private JLabel fuelLabel;		public Fuel()		{			this( 100.0 );			//this( 0.0 );		}		public Fuel( double fuelTemp )		{			fuel = fuelTemp;			fuelLabel = new JLabel( Double.toString( fuel ) );			add( fuelLabel );		}		public void setFuel( double fuelTemp )		{			fuel = fuelTemp;			fuelLabel.setText( Double.toString( fuel ) );		}		public double getFuel()		{			return fuel;		}	}	public class CoPilotEnabler extends JPanel	{		private boolean coPilotEnabled;		private JButton coPilotEnabledButton;		private JLabel coPilotEnabledLabel;		public CoPilotEnabler()		{			coPilotEnabled = false;			coPilotEnabledButton = new JButton( "CoPilot" );			coPilotEnabledButton.addActionListener( new CoPilotEnablerListener() );			coPilotEnabledLabel = new JLabel( "Disabled" );			setLayout( new GridLayout( 2, 1 ) );			add( coPilotEnabledButton );			add( coPilotEnabledLabel );		}		public void setCoPilotEnabled( boolean coPilotEnabledTemp )		{			coPilotEnabled = coPilotEnabledTemp;		}		public boolean getCoPilotEnabled()		{			return coPilotEnabled;		}		public class CoPilotEnablerListener implements ActionListener		{			public void actionPerformed( ActionEvent ae )			{				coPilotEnabled = !coPilotEnabled;				coPilot.setEnabled( coPilotEnabled );				if( coPilotEnabled )				{					coPilotEnabledLabel.setText( "Enabled" );				}				else				{					coPilotEnabledLabel.setText( "Disabled" );				}			}		}	}	public class Speed extends JPanel	{		private double speed;		Gauge speedGauge;		public Speed()		{			this( 0.0 );		}		public Speed( double speedTemp )		{			speed = speedTemp;			speedGauge = new Gauge( "Speed", 50, 0, 500, Math.PI / 4, 1.5 * Math.PI, 30, 20, 0.0 );			setLayout( new GridLayout( 1, 1 ) );			add( speedGauge );		}		public void setSpeed( double speedTemp )		{			speed = speedTemp;			//speedLabel.setText( Double.toString( speed ) );			speedGauge.setValue( speed );		}		public double getSpeed()		{			return speed;		}	}	public class Thrust extends JPanel	{		private final int MAX = 500; //size of thruster		private final int THRUST_RATIO = 1; //how much speed the thruster imparts		private double thrust;		private JSlider thrustSlider;		public Thrust()		{			thrust = 0.0;			thrustSlider = new JSlider( JSlider.VERTICAL, 0, MAX, 0 );			thrustSlider.setMajorTickSpacing( 100 );			thrustSlider.setMinorTickSpacing( 25 );			thrustSlider.setPaintTicks( true );

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -