Hey guys, I guess it'd be a good idea to explain the basic principle of this program since knowing my Java 'skills' I'll be asking a lot of questions regarding it.
It will basically consist of an "add ant" button that will create an ant in a little panel, each ant has it's own ID (1-10, 10 being the maximum amount of ants) and it's own unique colour. There will be ten radio buttons below the panel so that the user can select what ant they want to move, and they can actually move the ant by using the arrow keys.
The 'ant type' box is disabled at the moment, there's no real need to have it, although I stuck it on there because it may be implemented at a later date.
Here's the code at present:
/* Ant.java
A program created to simulate an ant colony.
Author : Nick Drew
Date : 15/02/2005
Ref : U30.01 - Java Programming */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.DecimalFormat;
public class Ant extends JFrame
{
int colonySize = 0;
int[] index = new int[10];
// JLabel and JTextfield for Ant Type
private JLabel typeJLabel;
private JTextField typeJTextField;
// JButton to create an ant
private JButton createJButton;
// JTextArea to display results
private JTextArea backgroundJTextArea;
// JLabel for the Instructions
private JLabel instructionsJLabel;
// JLabels for the Ants
private JLabel antOneJLabel;
private JLabel antTwoJLabel;
private JLabel antThreeJLabel;
private JLabel antFourJLabel;
private JLabel antFiveJLabel;
private JLabel antSixJLabel;
private JLabel antSevenJLabel;
private JLabel antEightJLabel;
private JLabel antNineJLabel;
private JLabel antTenJLabel;
// JLabels for the Key
private JLabel keyOneJLabel;
private JLabel keyTwoJLabel;
private JLabel keyThreeJLabel;
private JLabel keyFourJLabel;
private JLabel keyFiveJLabel;
private JLabel keySixJLabel;
private JLabel keySevenJLabel;
private JLabel keyEightJLabel;
private JLabel keyNineJLabel;
private JLabel keyTenJLabel;
// no-argument constructor
public Ant()
{
createUserInterface();
}
// create and position GUI components; register event handlers
private void createUserInterface()
{
// get content pane and set layout to null
Container contentPane = getContentPane();
contentPane.setLayout( null );
// set up typeJLabel
typeJLabel = new JLabel();
typeJLabel.setBounds( 164, 22, 80, 21 );
typeJLabel.setText( "Ant Type:" );
contentPane.add( typeJLabel );
// set up typeJTextField
typeJTextField = new JTextField();
typeJTextField.setBounds( 238, 22, 98, 21 );
typeJTextField.setHorizontalAlignment( JTextField.RIGHT );
typeJTextField.setEnabled( false );
contentPane.add( typeJTextField );
/* ----------------------------- */
/* Start Of Key / Selection Area */
// set up instructionsJLabel
instructionsJLabel = new JLabel();
instructionsJLabel.setBounds( 136, 328, 226, 21 );
instructionsJLabel.setText( "Please select the ant you wish to move." );
contentPane.add( instructionsJLabel );
// set up keyOneJLabel
keyOneJLabel = new JLabel();
keyOneJLabel.setBounds( 68, 348, 80, 21 );
keyOneJLabel.setText( "?" );
keyOneJLabel.setForeground(Color.BLACK);
contentPane.add( keyOneJLabel );
// set up keyTwoJLabel
keyTwoJLabel = new JLabel();
keyTwoJLabel.setBounds( 68, 368, 80, 21 );
keyTwoJLabel.setText( "?" );
keyTwoJLabel.setForeground(Color.BLUE);
contentPane.add( keyTwoJLabel );
// set up keyThreeJLabel
keyThreeJLabel = new JLabel();
keyThreeJLabel.setBounds( 68, 388, 80, 21 );
keyThreeJLabel.setText( "?" );
keyThreeJLabel.setForeground(Color.CYAN);
contentPane.add( keyThreeJLabel );
// set up keyFourJLabel
keyFourJLabel = new JLabel();
keyFourJLabel.setBounds( 68, 408, 80, 21 );
keyFourJLabel.setText( "?" );
keyFourJLabel.setForeground(Color.GREEN);
contentPane.add( keyFourJLabel );
// set up keyFiveJLabel
keyFiveJLabel = new JLabel();
keyFiveJLabel.setBounds( 68, 428, 80, 21 );
keyFiveJLabel.setText( "?" );
keyFiveJLabel.setForeground(Color.ORANGE);
contentPane.add( keyFiveJLabel );
// set up keySixJLabel
keySixJLabel = new JLabel();
keySixJLabel.setBounds( 268, 348, 80, 21 );
keySixJLabel.setText( "?" );
keySixJLabel.setForeground(Color.PINK);
contentPane.add( keySixJLabel );
// set up keySevenJLabel
keySevenJLabel = new JLabel();
keySevenJLabel.setBounds( 268, 368, 80, 21 );
keySevenJLabel.setText( "?" );
keySevenJLabel.setForeground(Color.RED);
contentPane.add( keySevenJLabel );
// set up keyEightJLabel
keyEightJLabel = new JLabel();
keyEightJLabel.setBounds( 268, 388, 80, 21 );
keyEightJLabel.setText( "?" );
keyEightJLabel.setForeground(Color.BLUE);
contentPane.add( keyEightJLabel );
// set up keyNineJLabel
keyNineJLabel = new JLabel();
keyNineJLabel.setBounds( 268, 408, 80, 21 );
keyNineJLabel.setText( "?" );
keyNineJLabel.setForeground(Color.MAGENTA);
contentPane.add( keyNineJLabel );
// set up keyTenJLabel
keyTenJLabel = new JLabel();
keyTenJLabel.setBounds( 268, 428, 80, 21 );
keyTenJLabel.setText( "?" );
keyTenJLabel.setForeground(Color.YELLOW);
contentPane.add( keyTenJLabel );
// set up createJButton and register its event handler
createJButton = new JButton();
createJButton.setBounds( 198, 58, 94, 24 );
createJButton.setText( "Create Ant" );
contentPane.add( createJButton );
createJButton.addActionListener(
new ActionListener() // anonymous inner class
{
// method called when user clicks createJButton
public void actionPerformed( ActionEvent event )
{
createJButtonActionPerformed( event );
}
} // end anonymous inner class
); // end call to addActionListener
//setup backgroundJTextArea
backgroundJTextArea = new JTextArea();
backgroundJTextArea.setBounds( 46, 86, 386, 246 );
backgroundJTextArea.setEditable( false );
contentPane.add( backgroundJTextArea );
// set properties of window
setTitle( "Java Ant Class" ); // set window's title
setSize( 488, 488 ); // set window's size
setVisible( true ); // display window
} // end method createUserInterface
// method called when user clicks calculateJButton
private void createJButtonActionPerformed( ActionEvent event )
{
JOptionPane.showMessageDialog(null, "Add Ant, etc");
} // end method calculateJButtonActionPerformed
// main method
public static void main( String[] args )
{
Ant application = new Ant();
application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
} // end method main
} // end class Ant
MacBook Air M3 with 512GB SSD and 16GB RAM is now available for just $899 by Taras Buria
Apple is infamous for its eye-watering storage and RAM upgrade prices in Macs, iPads, and iPhones. However, there is no denying that the company makes great hardware, especially for Macs with their powerful and efficient chips. If you want an affordable Mac with more than just 256GB of storage, check out this deal on the 2024 MacBook Air M3 with 512GB SSD and 16GB of RAM, which is now available for only $899 ($600 off the original MSRP).
The MacBook Air needs no introduction. This 13-inch laptop with a full-metal body has a solid Liquid Retina display, a powerful eight-core M3 processor with a 10-core graphics, and a battery that lasts all day (Apple claims up to 18 hours of video playback). The chip supports Apple Intelligence features such as image generation, writing tools, ChatGPT integration with Siri, and more. It can also drive two external 5K displays with the lid closed (or one display with the lid open).
The laptop also has a backlit keyboard with a fingerprint sensor, a massive haptic trackpad, a 1080p webcam (in the notch), and a powerful quad-speaker audio system with Spatial Audio support. Available ports include MagSafe for magnetic charging, a headphone jack, and two Thunderbolt 4 Type-C ports. All of that is packed into a half-inch-thick lightweight chassis that is easy to carry around. 2024 13-inch MacBook Air M3, 16GB, 512GB - $899 | 31% off on Amazon
This Amazon deal is US-specific and not available in other regions unless specified. If you don't like it or want to look at more options, check out the Amazon US deals page here.
Get Prime (SNAP), Prime Video, Audible Plus or Kindle / Music Unlimited. Free for 30 days.
As an Amazon Associate, we earn from qualifying purchases.
That's why it really depends to what extent they've tweaked it and if you can just easily switch to full Windows if you want. I'm sure lots of people who just game on their devices with some light web browsing etc, would love to have this Xbox version as a option though. It really depends on what you do with your device. Maybe they're only going to offer it to specific gaming devices like handhelds or mini-PCs you can put under your TV?
Question
xKratosx
Hey guys, I guess it'd be a good idea to explain the basic principle of this program since knowing my Java 'skills' I'll be asking a lot of questions regarding it.
It will basically consist of an "add ant" button that will create an ant in a little panel, each ant has it's own ID (1-10, 10 being the maximum amount of ants) and it's own unique colour. There will be ten radio buttons below the panel so that the user can select what ant they want to move, and they can actually move the ant by using the arrow keys.
The 'ant type' box is disabled at the moment, there's no real need to have it, although I stuck it on there because it may be implemented at a later date.
Here's the code at present:
Edited by blizeHLink to comment
https://www.neowin.net/forum/topic/287825-java-programming-ant-simulator/Share on other sites
20 answers to this question
Recommended Posts