Hi Everyone,

I am a student and I have been asked to make a program to create business cards. At the moment I have made a fully working application with file IO. The program basicly takes any input into the text fields and displays them on a business card template. Also it is necessary for the program to put a logo onto the business card by means of selection boxes. I already have written methods for drawing the logos, at the moment they are seperate applets. On my application I have included seletion boxes but at the moment they are tied to a String array so when the selection is made the strings: "Logo1", "Logo2", and "logo3" are displayed on the card rather than the Graphical logos drawn in the applets I have previously written. Can anyone suggest a way that I can tie the selection boxes to the logos so that they are displayed on the screen, Even if i have to cut and paste the methods into my new application code. I just need some help doing it.

Oh by the way here is the code i am using so far: Please can anyone help I have been sitting at the computer scratching my head all day. A forum really is my last resort so any help would be greatly appreciated.

import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class BusinessCard extends Frame implements ActionListener, ItemListener {

 private Panel p1 ,p2, p3, p4, p5, bigP;
    private TextField nameField;
    private TextField phoneNumberField;
 private Choice companyChoice;
 private Button display,saveButton;
 private CheckboxGroup c;
    private Checkbox logo1, logo2, logo3;
 private Label errorLabel;
    private int phoneNumbers ;
 private String name = " ";
 private String[] logoArray = {"Logo1","Logo2","Logo3"} ;
 private String logo = logoArray[0];
 private String[] companyArray = new String[8]; // = {"Microstar International","AGNEOVO","Toshiba","Sony","Seagate","Microsoft","LG","AMD"} ;
 private String company = " ";
 private Card myCard;

 public static void main(String[] args) {
  BusinessCard pd = new BusinessCard();
  pd.setSize(500,350);
  pd.setVisible(true);
 }
    public BusinessCard() {
  enableEvents(AWTEvent.WINDOW_EVENT_MASK);
  try {
    BufferedReader in = new BufferedReader(new FileReader("company.txt"));
    String str;
   int i = 0;
    while ((str = in.readLine()) != null) { 
    companyArray[i] = str;
    i++;
    } 
   in.close(); 
  } 
  catch (IOException e) { 
   System.err.println("File Error: " + e.toString() );
   System.exit(1);
  } 
  setLayout(new BorderLayout());
  setBackground( new Color(222,254,174));
  myCard = new Card();

        bigP= new Panel();
  bigP.setLayout(new BorderLayout());
  bigP.setBackground( new Color(86,113,248));
  p1 = new Panel();
        nameField=new TextField(10);
        p1.add(new Label("Name: "));
        p1.add(nameField);
        bigP.add("West",p1);

        p2 = new Panel();
  phoneNumberField=new TextField(15);
        p2.add(new Label("Phone Number: "));
        p2.add(phoneNumberField);
        bigP.add("Center",p2);

        p3 = new Panel();
        c = new CheckboxGroup();
        p3.add(new Label("Select a Logo :"));
        logo1 = new Checkbox("Logo1", c, true);
        p3.add(logo1);
        logo1.addItemListener(this);
  logo2 = new Checkbox("Logo2", c, false);
        p3.add(logo2);
        logo2.addItemListener(this);
        logo3 = new Checkbox("Logo3", c, false);
        p3.add(logo3);
        logo3.addItemListener(this);
        bigP.add("South",p3);
  p4 = new Panel();
     companyChoice = new Choice();
  for (int i=0; i<7 ; i++ )
  {
   companyChoice.addItem(companyArray[i]);
  }
        companyChoice.select(0);
  companyChoice.addItemListener(this);
       p4.add(new Label("Choose Your Company:  "));
  p4.add(companyChoice);

  bigP.add("North",p4);
  add("North",bigP);
  p5 = new Panel();
  p5.setLayout(new BorderLayout()); 
  p5.setBackground( Color.BLUE);
  display = new Button("Display");
  saveButton = new Button("Save");
  p5.add("East",display);
  p5.add("West",saveButton);
  display.addActionListener(this);
  saveButton.addActionListener(this);
  errorLabel = new Label( "... ");
  errorLabel.setForeground(Color.RED);
  p5.add("South", errorLabel);
        add("South",p5);

    }
  public void itemStateChanged(ItemEvent e) {

        if (logo1.getState() == true) 
   logo = logoArray[0];
        else if (logo2.getState() == true)
   logo = logoArray[1];
        else 
   logo = logoArray[2];
      //  repaint();
    }
    public void actionPerformed(ActionEvent event) {
        company = companyChoice.getSelectedItem();

  if (event.getSource()==display){
   try{
    name=nameField.getText();
    phoneNumbers=Integer.parseInt(phoneNumberField.getText());
    myCard.setName(name);
    myCard.setPhoneNumber(phoneNumbers);
    myCard.setLogo(logo);
    myCard.setCompany(company);
   }

   catch(Exception e) {

    errorLabel.setText("Enter Numbers Only.  No spaces or other Characters");
            }
  }
  if (event.getSource() == saveButton ) {

   try { 
    BufferedWriter out = new BufferedWriter(new FileWriter("cards.txt", true));
     out.write( name + ", " + phoneNumbers + ", " + company ); 
    out.newLine();
    out.close();
    } 
   catch (IOException e) {
    System.err.println("File Error: " + e.toString() );
    System.exit(1);
    } 
  }
        repaint();
    }
 public void paint (Graphics g) {
   this.getGraphics().clearRect(120, 120, 200, 120);
   myCard.presentCard(g);
 }
 public void processWindowEvent( WindowEvent e) {
  super.processWindowEvent(e);
  if (e.getID() == WindowEvent.WINDOW_CLOSING){
   System.exit(0);
  }

 }
}

instead of having the logos be drawn in the app. have the user draw it somewhere else and allow them to insert any image ontop of the template.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.