[prg] мобильник на языке java
Здравствуйте всем участникам рассылки! Уже чуть больше полутора лет пытаюсь
изучить язык java, дошёл до графического интерфейса. Пытаюсь написать
программу мобильный телефон: тоесть она должна по нажатию, например кнопки с
надписью 1 выводить на экран цифру 1, по нажатию кнопки сб или сброс
выводить фразу of, вроде как выключено. Короче всё как на обычном сотовом
телефоне, только без меню . почему-то не получается вывести кнопки на форму,
вроде, события для них зарегистрированы, у метода setvisible входной
параметр true, то есть они видимы, но после компиляции как подсказывают
зрячие люди окно пустое, тоесть появляется только форма. Код будет
представлен ниже, если кто-нибудь сможет объяснить в чем ошибка огромное
спасибо. С уважением Леонид.
Код программы:
package sot;
import java.awt.*;
import java.awt.event.*;
public class mobile extends Frame implements ActionListener {
TextField Edit,Edit1;
String Spis="";
String Spis1 = "соединение...";
String Spis2 = "Вызов OFF ";
String Spis3 = " О Привет!";
Button b[];
mobile(String d) {
super (d);
setBounds(50,60,186,285);
setVisible(true);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent
we){
System.exit(0);
}
});
setTitle("samsung");
b=new Button[17];
setLayout(new GridLayout(5, 3, 50, 0));
Panel forma=new Panel (new GridLayout(3,5,2,0));
Edit = new TextField(" ");
Edit.setBounds(20, 0, 40, 30);
Edit.setVisible(true);
Edit1 = new TextField(" ");
Edit1.setBounds(20, 0, 40, 30);
Edit1.setVisible(true);
setLayout (new FlowLayout (FlowLayout.CENTER, 15,
5));
forma.add(new TextField ("Samsung c5212", 10));
forma.add(Edit);
forma.add(Edit1);
add(forma);
b[0]=new Button("Вз");
b[0].setVisible(true);
add(b[0]);
b[1]=new Button("C");
b[1].setVisible(true);
add(b[1]);
b[2]=new Button("Сб");
b[2].setVisible(true);
add(b[2]);
b[3]=new Button("1");
b[3].setVisible(true);
add(b[3]);
b[4]=new Button("2");
b[4].setVisible(true);
add(b[4]);
b[5]=new Button("3");
b[5].setVisible(true);
add(b[5]);
b[6]=new Button("4");
b[6].setVisible(true);
add(b[6]);
b[7]=new Button("5");
b[7].setVisible(true);
add(b[7]);
b[8]=new Button("6");
b[8].setVisible(true);
add(b[8]);
b[9]=new Button("7");
b[9].setVisible(true);
add(b[9]);
b[10]=new Button("8");
b[10].setVisible(true);
add(b[10]);
b[11]=new Button("9");
b[11].setVisible(true);
add(b[11]);
b[12]=new Button("*");
b[12].setVisible(true);
add(b[12]);
b[13]=new Button("0");
b[13].setVisible(true);
add(b[13]);
b[14]=new Button("#");
b[14].setVisible(true);
add(b[14]);
int i;
for (i =0; i<13;i++)
b[i].addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==b[0]){
if (Spis=="") Edit.setText("Где номер?
"); else {Edit.setText(Spis1);
Edit1.setText(Spis3);
};
}
if(e.getSource()==b[1]){
Spis="";
Edit.setText(Spis);
}
if(e.getSource()==b[2]){
Edit.setText(Spis2);
}
if(e.getSource()==b[3]){
Spis=Spis+"1";
Edit.setText(Spis);
}
if(e.getSource()==b[4]){
Spis=Spis+"2";
Edit.setText(Spis);
}
if(e.getSource()==b[5]){
Spis=Spis+"3";
Edit.setText(Spis);
}
if(e.getSource()==b[7]){
Spis=Spis+"5";
Edit.setText(Spis);
}
if(e.getSource()==b[8]){
Spis=Spis+"6";
Edit.setText(Spis);
}
if(e.getSource()==b[9]){
Spis=Spis+"7";
Edit.setText(Spis);
}
if(e.getSource()==b[10]){
Spis=Spis+"8";
Edit.setText(Spis);
}
if(e.getSource()==b[11]){
Spis=Spis+"9";
Edit.setText(Spis);
}
if(e.getSource()==b[12]){
Spis=Spis+"*";
Edit.setText(Spis);
}
if(e.getSource()==b[13]){
Spis=Spis+"0";
Edit.setText(Spis);
}
if(e.getSource()==b[14]){
Spis=Spis+"#";
Edit.setText(Spis);
}
}
public static void main(String[] args) {
new mobile("c5212");
}
}
Приветствую всех.
В данном случае, чтобы понять, какие элементы отображаются в форме, можно использовать
виртуализацию окна (например, Insert+Alt+W в JAWS 11). Если элемент реально отображается
в форме, то его надпись будет присутствовать в окне виртуального просмотра.
Основная ошибка заключается в работе с менеджерами компоновки.
Я могу выслать вам рабочий вариант, в котором все отображается, но лучше будет
если вы словами опишите, чего вы пытались добиться от менеджеров компоновки в
вашем коде: какая сетка (или сетки) вами предполагались, какие элементы в этих
сетках, по-вашему, должны были появиться и в каких ячейках...
Ещё рекомендую не пренебрегать комментариями особенно в тех местах кода, которые
не являются очевидными при поверхностном прочтении.
А отрисовка визуального интерфейса не является очевидной по определению для любого
незрячего независимо от того, пишет ли он код или читает.
Успехов. Анатолий.