algorytm.org

Implementacja w Java



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Pharmacode two-track - Implementacja w Java
Ocena użytkownikóww: *****  / 2
SłabyŚwietny
Nadesłany przez Tomasz Lubiński, 31 lipca 2007 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

Pharmacode_TT.java:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
 * @author Tomasz Lubinski
 * (c)2007 algorytm.org
 *
 *  Pharmacode two-track
 */
public class Pharmacode_TT implements ActionListener {

    JFrame mainFrame;
    JPanel mainPanel;
    JPanel inputPanel;
    
    JTextField inputValue;
    JButton generateButton;
    JBarCode outputBars;
    
	public Pharmacode_TT() {
		mainFrame = new JFrame("Generate Pharmacode two-track");
		mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		//create and set all components
		inputPanel = new JPanel();
		inputValue = new JTextField("12345");
    	generateButton = new JButton("Generate");
    	inputPanel.add(inputValue);
    	inputPanel.add(generateButton);
    	
    	outputBars = new JBarCode();
    	
        //Listen to events from the generate button.
    	inputValue.addActionListener(this);
    	generateButton.addActionListener(this);
    	
        //Create the main panel
		mainPanel = new JPanel(new GridLayout(2, 1));
    	mainPanel.add(inputPanel);
    	mainPanel.add(outputBars);
    	
        mainFrame.getContentPane().add(mainPanel, BorderLayout.CENTER);
        mainFrame.setSize(450, 300);
		mainFrame.setVisible(true);
	}
	
   
    /**
     * Create the GUI and show it.  For thread safety,
     * this method should be invoked from the
     * event-dispatching thread.
     */
	@SuppressWarnings("unused")
    private static void createAndShowGUI() {
        //Make sure we have nice window decorations.
        JFrame.setDefaultLookAndFeelDecorated(true);

         Pharmacode_TT pharmacode = new Pharmacode_TT();
    }
    
	public static void main(String[] args) {
        //Schedule a job for the event-dispatching thread:
        //creating and showing this application's GUI.
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });		
	}

	public void actionPerformed(ActionEvent arg0) {
		int number = Integer.parseInt(inputValue.getText());
		
		if (number >= 4 && number <= 64570080) {
			outputBars.clear();
	        while (number != 0)
	        {
	                if ((number % 3) == 0)  
	                {
	                	outputBars.print('N'); /* normal */
	                    number = (number-3)/3;
	                }
	                else if ((number % 3) == 2)
	                {
	                	outputBars.print('A'); /* above */
	                    number = (number-2)/3;
	                }
	                else 
	                {
	                	outputBars.print('B'); /* below */                	
	                    number = (number-1)/3;	                	
	                }
	        }
	        
			//refresh component
			outputBars.repaint();
		} 
		else {
			JOptionPane.showMessageDialog(mainFrame, "Incorrect input characters");
		}
	}
}
Dodaj komentarz