📄 antgui.java
字号:
/* Applet to solve the Traveling Salesman Problem
* Copyright (C) 2002 Tobias Oetzel (Tobias.Oetzel@gmx.de)
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your option)
* any later version. This program is distributed in the hope that it will be
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
* You should have received a copy of the GNU General Public License along with this program;
* if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
// Ant Colony Optimization Gui
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import java.awt.*;
import java.util.*;
import java.awt.event.*;
import java.text.*;
public class antgui
{
private JPanel MyContainer;
private JLabel MaxCyclesLabel,
ImpTrailLabel,
ImpVisibilityLabel,
TrailPersistenceLabel//,
;// TrailQuantityLabel;
private JComboBox MaxCyclesComboBox,
ImpTrailComboBox,
ImpVisibilityComboBox,
TrailPersistenceComboBox//,
;// TrailQuantityComboBox;
protected String MaxCycles,
ImpTrail,
ImpVisibility,
TrailPersistence,
TrailQuantity;
private tsp TspInstance;
public antgui(JPanel S, tsp MyInstance)
{
MyContainer=S;
TspInstance=MyInstance;
}
public void InitContent()
{
Font MyFont = new Font("System",0,12);
MaxCyclesLabel = new JLabel();
MaxCyclesLabel.setVisible(false);
MaxCyclesLabel.setText("Runden");
MaxCyclesLabel.setBounds(25,68,150,15);
MaxCyclesLabel.setFont(MyFont);
MaxCyclesComboBox = new JComboBox();
MaxCyclesComboBox.setBackground(Color.white);
MaxCyclesComboBox.setVisible(false);
MaxCyclesComboBox.setEditable(true);
MaxCyclesComboBox.setBounds(25,84,200,21);
MaxCyclesComboBox.setFont(MyFont);
MaxCyclesComboBox.addItem("10");
MaxCyclesComboBox.addItem("30");
MaxCyclesComboBox.addItem("50");
MaxCyclesComboBox.addItem("100");
MaxCyclesComboBox.addItem("500");
MaxCyclesComboBox.addItem("1000");
MaxCycles="30";
MaxCyclesComboBox.setSelectedIndex(1);
MaxCyclesComboBox.addActionListener(new ActionListener ()
{
public void actionPerformed(ActionEvent e)
{
MaxCycles=(String)MaxCyclesComboBox.getSelectedItem();
}
});
ImpTrailLabel = new JLabel();
ImpTrailLabel.setVisible(false);
ImpTrailLabel.setText("Bedeutung der Pheromone");
ImpTrailLabel.setBounds(25,116,250,15);
ImpTrailLabel.setFont(MyFont);
ImpTrailComboBox = new JComboBox();
ImpTrailComboBox.setBackground(Color.white);
ImpTrailComboBox.setEditable(true);
ImpTrailComboBox.setVisible(false);
ImpTrailComboBox.setBounds(25,132,200,21);
ImpTrailComboBox.setFont(MyFont);
ImpTrailComboBox.addItem("0");
ImpTrailComboBox.addItem("0.1");
ImpTrailComboBox.addItem("0.2");
ImpTrailComboBox.addItem("0.3");
ImpTrailComboBox.addItem("0.4");
ImpTrailComboBox.addItem("0.5");
ImpTrailComboBox.addItem("1");
ImpTrailComboBox.addItem("2");
ImpTrailComboBox.addItem("5");
ImpTrail="1";
ImpTrailComboBox.setSelectedIndex(6);
ImpTrailComboBox.addActionListener(new ActionListener ()
{
public void actionPerformed(ActionEvent e)
{
ImpTrail=(String)ImpTrailComboBox.getSelectedItem();
}
});
ImpVisibilityLabel = new JLabel();
ImpVisibilityLabel.setText("Bedeutung der Entfernung");
ImpVisibilityLabel.setVisible(false);
ImpVisibilityLabel.setBounds(25,164,250,15);
ImpVisibilityLabel.setFont(MyFont);
ImpVisibilityComboBox = new JComboBox();
ImpVisibilityComboBox.setBackground(Color.white);
ImpVisibilityComboBox.setEditable(true);
ImpVisibilityComboBox.setVisible(false);
ImpVisibilityComboBox.setBounds(25,180,200,21);
ImpVisibilityComboBox.setFont(MyFont);
ImpVisibilityComboBox.addItem("0");
ImpVisibilityComboBox.addItem("0.1");
ImpVisibilityComboBox.addItem("0.2");
ImpVisibilityComboBox.addItem("0.3");
ImpVisibilityComboBox.addItem("0.4");
ImpVisibilityComboBox.addItem("0.5");
ImpVisibilityComboBox.addItem("1");
ImpVisibilityComboBox.addItem("2");
ImpVisibilityComboBox.addItem("5");
ImpVisibility="5";
ImpVisibilityComboBox.setSelectedIndex(8);
ImpVisibilityComboBox.addActionListener(new ActionListener ()
{
public void actionPerformed(ActionEvent e)
{
ImpVisibility=(String)ImpVisibilityComboBox.getSelectedItem();
}
});
TrailPersistenceLabel = new JLabel();
TrailPersistenceLabel.setText("Pheromon-Verdunstungsfaktor");
TrailPersistenceLabel.setVisible(false);
TrailPersistenceLabel.setBounds(25,212,250,15);
TrailPersistenceLabel.setFont(MyFont);
TrailPersistenceComboBox = new JComboBox();
TrailPersistenceComboBox.setBackground(Color.white);
TrailPersistenceComboBox.setEditable(true);
TrailPersistenceComboBox.setVisible(false);
TrailPersistenceComboBox.setBounds(25,228,200,21);
TrailPersistenceComboBox.setFont(MyFont);
TrailPersistenceComboBox.addItem("0.3");
TrailPersistenceComboBox.addItem("0.5");
TrailPersistenceComboBox.addItem("0.7");
TrailPersistenceComboBox.addItem("0.9");
TrailPersistenceComboBox.addItem("0.99");
TrailPersistenceComboBox.addItem("0.999");
TrailPersistence="0.5";
TrailPersistenceComboBox.setSelectedIndex(1);
TrailPersistenceComboBox.addActionListener(new ActionListener ()
{
public void actionPerformed(ActionEvent e)
{
TrailPersistence=(String)TrailPersistenceComboBox.getSelectedItem();
}
});
/*
TrailQuantityLabel = new JLabel();
TrailQuantityLabel.setText("Trail Quantity");
TrailQuantityLabel.setVisible(false);
TrailQuantityLabel.setBounds(25,260,250,15);
TrailQuantityLabel.setFont(MyFont);
TrailQuantityComboBox = new JComboBox();
TrailQuantityComboBox.setBackground(Color.white);
TrailQuantityComboBox.setEditable(true);
TrailQuantityComboBox.setVisible(false);
TrailQuantityComboBox.setBounds(25,276,200,21);
TrailQuantityComboBox.setFont(MyFont);
TrailQuantityComboBox.addItem("1");
TrailQuantityComboBox.addItem("100");
TrailQuantityComboBox.addItem("10000");
TrailQuantity="100";
TrailQuantityComboBox.setSelectedIndex(1);
TrailQuantityComboBox.addActionListener(new ActionListener ()
{
public void actionPerformed(ActionEvent e)
{
TrailQuantity=(String)TrailQuantityComboBox.getSelectedItem();
}
});
*/
TrailQuantity="100";
MyContainer.add(MaxCyclesLabel);
MyContainer.add(MaxCyclesComboBox);
MyContainer.add(ImpTrailLabel);
MyContainer.add(ImpTrailComboBox);
MyContainer.add(ImpVisibilityLabel);
MyContainer.add(ImpVisibilityComboBox);
MyContainer.add(TrailPersistenceLabel);
MyContainer.add(TrailPersistenceComboBox);
// MyContainer.add(TrailQuantityLabel);
// MyContainer.add(TrailQuantityComboBox);
}
public void ShowControls(boolean visible)
{
if (visible)
{
MaxCyclesLabel.setVisible(true);
MaxCyclesComboBox.setVisible(true);
ImpTrailLabel.setVisible(true);
ImpTrailComboBox.setVisible(true);
ImpVisibilityLabel.setVisible(true);
ImpVisibilityComboBox.setVisible(true);
TrailPersistenceLabel.setVisible(true);
TrailPersistenceComboBox.setVisible(true);
// TrailQuantityLabel.setVisible(true);
// TrailQuantityComboBox.setVisible(true);
if (TspInstance.MyDraw!=null)
{
TspInstance.MyDraw.repaint();
}
}
else
{
MaxCyclesLabel.setVisible(false);
MaxCyclesComboBox.setVisible(false);
ImpTrailLabel.setVisible(false);
ImpTrailComboBox.setVisible(false);
ImpVisibilityLabel.setVisible(false);
ImpVisibilityComboBox.setVisible(false);
TrailPersistenceLabel.setVisible(false);
TrailPersistenceComboBox.setVisible(false);
// TrailQuantityLabel.setVisible(false);
// TrailQuantityComboBox.setVisible(false);
if (TspInstance.MyDraw!=null)
{
TspInstance.MyDraw.repaint();
}
}
}
public void HandleControls(boolean enabled)
{
if (enabled)
{
MaxCyclesComboBox.setEnabled(true);
ImpTrailComboBox.setEnabled(true);
ImpVisibilityComboBox.setEnabled(true);
TrailPersistenceComboBox.setEnabled(true);
// TrailQuantityComboBox.setEnabled(true);
}
else
{
MaxCyclesComboBox.setEnabled(false);
ImpTrailComboBox.setEnabled(false);
ImpVisibilityComboBox.setEnabled(false);
TrailPersistenceComboBox.setEnabled(false);
// TrailQuantityComboBox.setEnabled(false);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -