Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2016, 15:47   #1
Velvi
Пользователь
 
Аватар для Velvi
 
Регистрация: 24.01.2016
Сообщений: 11
Смущение Прошу помощи с кодом на Java

Привет всем!Помогите с калькулятором.Неизвестно откуда взялся ноль в углу.Не понимаю откуда он,не могу его убрать.
Код:
import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
public class prog1_ {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		okno nf=new okno();
	}
	}
class okno extends JFrame
{
	private JTextArea text;
	private double p1=0,p2=0;
	private int oper=0;
	private void btnclick(JButton btn)
	{
		String str=btn.getText();
		//JOptionPane.showMessageDialog(null, str);
		if (str =="EXIT")
		{
			System.exit(0);	
		}
		else if (str=="c")
		{
			p1=0;p2=0;text.setText("");
		}
		else if(str=="+")
		{
			oper=1;			
			p1 = Double.parseDouble(text.getText());
			text.setText("");
		}
		else if(str=="-")
		{
			oper=2;
			p1 = Double.parseDouble(text.getText());
			text.setText("");
		}
		else if(str=="*")
		{
			oper=3;
			p1 = Double.parseDouble(text.getText());
			text.setText("");
		}
		else if(str=="/")
		{
			oper=4;
			p1 = Double.parseDouble(text.getText());
			text.setText("");
		}
		else if(str=="!")
		{
			oper=5;
			p1 = Double.parseDouble(text.getText());
			int sum = 1;
			int i = 1;
			for(i = 1;i<=p1;i++)
			{
				sum=sum*i;
			}
			text.setText(""+(sum));
			
			//text.setText("");
		}
		else if(str=="=")
		{
			p2 = Double.parseDouble(text.getText());
			if(oper==1)
			{
				text.setText(""+(p1+p2));
			}
			else if(oper==2)
			{
				text.setText(""+(p1-p2));
			}
			else if(oper==3)
			{
				text.setText(""+(p1*p2));
			}
			else if(oper==4)
			{
				text.setText(""+(p1/p2));
			}
			else if(oper==5)//Факториал
			{
				
			}
		}
		else
		{
			text.setText("" + text.getText() + str);
			
		}
		
			
		//JOptionPane.showMessageDialog(null, "Бутерброд");
	}
	public okno()
	{
		Container cont = getContentPane();
		JPanel pan = new JPanel();
		pan.setLayout(null);
		Font btnFont = new Font("serif",0,20);
		Font labFont = new Font("arial",1,30);
		Font textFont = new Font("arial",2,30);
		JButton[] btn = new JButton[24];
		for (int i=0;i<22;i++)
		{
			btn[i] = new JButton();
			
			btn[i].setSize(50,50);
			btn[i].setFont(btnFont);
			/*if (i <= 3)
			{
				btn[i].setLocation(50 + 50*i, 100);
			}
			else if (i <= 7)
			{
				btn[i].setLocation(50 + 50*(i-4), 150);
			}
			else if (i <= 11)
			{
				btn[i].setLocation(50 + 50*(i-8), 200);
			}
			else if (i <= 15)
			{
				btn[i].setLocation(50 + 50*(i-12), 250);
			}
			else if (i <= 18)
			{
				btn[i].setLocation(50 + 50*(i-15), 300);
			}*/
			pan.add(btn[i]);
			
			btn[i].addActionListener(new ActionListener()
			{
			public void actionPerformed(ActionEvent e){
				btnclick((JButton)e.getSource());
			}});
		}
		for(int i=0;i<10;i++)btn[i].setText(""+i);
		btn[2].setText("1");
		btn[2].setLocation(100, 150);
		btn[3].setText("2");
		btn[3].setLocation(150, 150);
		btn[4].setText("3");
		btn[4].setLocation(200, 150);
		btn[5].setText("4");
		btn[5].setLocation(100, 200);
		btn[8].setText("5");
		btn[8].setLocation(150, 200);
		btn[9].setText("6");
		btn[9].setLocation(200, 200);
		btn[10].setText("7");
		btn[10].setLocation(100, 250);
		btn[11].setText("8");
		btn[11].setLocation(150,250);
		btn[12].setText("9");
		btn[12].setLocation(200, 250);
		btn[13].setText("0");
		btn[13].setLocation(100, 300);
		btn[13].setSize(150, 50);
		btn[14].setText("+");
		btn[14].setLocation(100, 100);
		btn[15].setText("-");
		btn[15].setLocation(150, 100);
		btn[16].setText("/");
		btn[16].setLocation(200, 100);
		btn[17].setText("*");
		btn[17].setLocation(250, 100);
		btn[18].setText("=");
		btn[18].setLocation(250, 200);
		btn[19].setText("c");
		btn[19].setLocation(250, 250);
		btn[19].setSize(50, 100);
		btn[20].setText("EXIT");
		btn[20].setLocation(634, 511);
		btn[20].setSize(150, 50);
		btn[21].setText("!");
		btn[21].setLocation(250, 150);
		
		JLabel lab = new JLabel("Resultat: ");
		lab.setFont(labFont);
		lab.setBounds(130,0,300,50);
		pan.add(lab);
		text = new JTextArea();
		text.setFont(textFont);
		text.setBounds(300,10,300,35);
		text.setForeground(new Color(0,0,100));
		text.setBackground(Color.WHITE);
		pan.add(text);
		cont.add(pan);
		setBounds(0,0,800,600);
		setTitle ("Calculator");
		setVisible(true);
}
}
˙ɐwɐvʞǝd ɐmɐʚ qɯıqƍ ɐvɹоw qɔǝɓε
Velvi вне форума Ответить с цитированием
Старый 31.01.2016, 23:44   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

В цикле создаются кнопки. Расположение при этом не инициализируется у части кнопок. Массив из 24 кнопок. Не инициализированы кнопки 0, 6, 7, 22, 23. Попробуте переписать цикл так, чтобы не инициализированных кнопок не было.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 01.02.2016, 15:39   #3
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Для того чтобы не было наложений пользуйтесь layout ами. )))
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 02.02.2016, 12:36   #4
Velvi
Пользователь
 
Аватар для Velvi
 
Регистрация: 24.01.2016
Сообщений: 11
По умолчанию

Спасибо,помогло.
˙ɐwɐvʞǝd ɐmɐʚ qɯıqƍ ɐvɹоw qɔǝɓε
Velvi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помощи с кодом на Java Velvi Общие вопросы по Java, Java SE, Kotlin 2 24.01.2016 16:15
Прошу помощи: посоветуйте, что лучше начать изучать первым java или Python и что конкретно создается на каждом из языков orionit Помощь студентам 4 14.05.2015 08:20
прошу помощи ex-hack Помощь студентам 2 05.06.2009 15:54
Прошу помощи!!! Oksana Общие вопросы Delphi 3 03.03.2007 12:51
Прошу помощи! Oksana Общие вопросы Delphi 6 11.02.2007 18:36