Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 29

Заедает JButton

30.01.2013, 21:52. Показов 1178. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
реализуем регистрацию в клиент сервер
подскажите плиз почему кнопку заедает? первый раз отправляет нормально потом виснет

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import java.io.*;
import java.net.*;
 import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
 
public class client extends JFrame {
String d = "";
private JLabel jLabel = null;
private JTextField jTextField = null;
private JButton jButton = null;
public client()
   {
      super();
      this.setSize(300, 300);
 this.getContentPane().setLayout(null);
this.getContentPane().add(getJLabel(), null);  
this.getContentPane().add(getJTextField(), null);  
this.getContentPane().add(getJButton(), null);  
this.setTitle("Регистрация");
   }
   private javax.swing.JLabel getJLabel() {
      if(jLabel == null) {
         jLabel = new javax.swing.JLabel();
         jLabel.setBounds(34, 49, 53, 18);
         jLabel.setText("Имя:");
      }
      return jLabel;
   }
   private javax.swing.JTextField getJTextField() {
      if(jTextField == null) {
         jTextField = new javax.swing.JTextField();
         jTextField.setBounds(96, 49, 160, 20);
      }
      return jTextField;
   }
   private javax.swing.JButton getJButton() {
      if(jButton == null) {
          jButton = new javax.swing.JButton();
         jButton.setBounds(103, 110, 71, 27);
         jButton.setText("OK");
jButton.addActionListener(new java.awt.event.ActionListener(){
   public void actionPerformed(java.awt.event.ActionEvent ae) {
d = jTextField.getText();
String fuser = d;
 
try {
Socket fromserver = null;
fromserver = new Socket("localhost",4444);
BufferedReader in  = new BufferedReader(new InputStreamReader(fromserver.getInputStream()));
   PrintWriter    out = new PrintWriter(fromserver.getOutputStream(),true);
BufferedReader inu = new BufferedReader(new InputStreamReader(System.in));
out.println(fuser);
String fserver;
   
    fserver = in.readLine();
System.out.println(fserver);
 
} catch(IOException e) {System.out.println("error");};
}
return();}  
);
}
      return jButton;
   }
public static void main(String[] args)
   {
client w = new client();
      w.setVisible(true);  
}
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.01.2013, 21:52
Ответы с готовыми решениями:

добавление JButton
есть код, где двигается шар по фрейму. Когда добавляю кнопку то все меркнет и становиться ничего не видно. Как сделать, чтобы кнопка была...

JButton и компания
Добрый день, пишу онлайн рисовалку, и столкнулся с проблемой, с которой часто сталкивался и старался обойти ее какими-нибудь ужасными путям...

Timer и JButton
Как сделать чтобы после нажатия кнопки таймер начал отсчет и продолжил его? Добавлено через 32 минуты часть кода ..... ...

10
1 / 1 / 1
Регистрация: 07.11.2012
Сообщений: 9
30.01.2013, 23:27
Длительные операции выполняй в отдельном потоке, а не в gui.
0
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
31.01.2013, 00:04
Цитата Сообщение от Юсенька Посмотреть сообщение
подскажите плиз почему кнопку заедает? первый раз отправляет нормально потом виснет
код сервера покажите
0
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 29
31.01.2013, 09:38  [ТС]
Цитата Сообщение от Drygba Посмотреть сообщение
код сервера покажите
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import java.io.*;
 
import java.net.*;
 
 
public class Server 
{
 
  public static void main(String[] args) throws IOException 
{
    System.out.println("Welcome to Server side");
 
    BufferedReader in = null;
 
    PrintWriter    out= null;
 
 
    ServerSocket servers = null;
 
   Socket       fromclient = null;
 
    // create server socket
 
    try {
      servers = new ServerSocket(4444);
    } 
catch (IOException e) 
{
      System.out.println("Couldn't listen to port 4444");
 
      System.exit(-1);
    }
 
 
    try {
      System.out.print("Waiting for a client...");
 
     fromclient= servers.accept();
 
      System.out.println("Client connected");
 
    } catch (IOException e)
 {
      System.out.println("Can't accept");
   
   System.exit(-1);
    }
 
 
   in  = new BufferedReader(new InputStreamReader(fromclient.getInputStream()));
 
    out = new PrintWriter(fromclient.getOutputStream(),true);
    
String         input,output;
 
 
    System.out.println("Wait for messages");
 
    while ((input = in.readLine()) != null)
 {
     if (input.equalsIgnoreCase("exit")) break;
   
  out.println("S ::: "+input);
  
   System.out.println(input);
    }
 
   out.close();
    in.close();
   
 fromclient.close();
    servers.close();
  }
}
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
31.01.2013, 10:56
Цитата Сообщение от Юсенька Посмотреть сообщение
подскажите плиз почему кнопку заедает? первый раз отправляет нормально потом виснет
Может, это потому что сервер отрабатывает только одно соединение, а потом прекращает работу? А клиент ждет соединения до таймаута. А поскольку это в GUI-потоке - пока таймаут не пройдет, GUI-поток блокирован.
0
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 29
31.01.2013, 14:32  [ТС]
Цитата Сообщение от JavaJunior Посмотреть сообщение
Длительные операции выполняй в отдельном потоке, а не в gui.
пробовала в отдельном та же проблема

Добавлено через 1 минуту
Цитата Сообщение от Skipy Посмотреть сообщение
Может, это потому что сервер отрабатывает только одно соединение, а потом прекращает работу? А клиент ждет соединения до таймаута. А поскольку это в GUI-потоке - пока таймаут не пройдет, GUI-поток блокирован.
но мы же нигде не устанавливаем таймаут?
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
31.01.2013, 19:25
Цитата Сообщение от Юсенька Посмотреть сообщение
но мы же нигде не устанавливаем таймаут?
Если его не устанавливаете Вы, то это не означает, что его нет вообще. На уровне ОС таймаут на соединение есть. Если мне не изменяет память, секунд 30.
1
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 29
31.01.2013, 19:31  [ТС]
[QUOTE=Skipy;4077712]Если его не устанавливаете Вы, то это не означает, что его нет вообще.[QUOTE]
Извините пожалуйста а вы не подскажите как его установить правильно?
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
01.02.2013, 11:12
Цитата Сообщение от Юсенька Посмотреть сообщение
Цитата Сообщение от Skipy Посмотреть сообщение
Если его не устанавливаете Вы, то это не означает, что его нет вообще.
Извините пожалуйста а вы не подскажите как его установить правильно?
Вы, судя по всему, не поняли, в чем суть. Дело не в таймауте. Дело в том, что Вы, а) выполняете код соединения в GUI-потоке, и б) сервер у Вас обрабатывает одно соединение и потом отваливается. Даже если Вы поставите таймаут в одну секунду - у Вас кнопка будет залипать на эту самую секунду. Даже при работающем сервере, если в сети будут задержки. Соединение по любому надо выносить в другой поток.
0
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 29
01.02.2013, 20:03  [ТС]
Цитата Сообщение от Skipy Посмотреть сообщение
а) выполняете код соединения в GUI-потоке, и б) сервер у Вас обрабатывает одно соединение и потом отваливается.
я пробовала выносить эффект тот же самый((((
а по поводу сервера... изначально у нас все работало через командную строку, причем можно было несколько сообщений отправлять потом нам потребовалось что бы клиент в фрейме был и через фрем не работает несколько раз((((
0
1 / 1 / 1
Регистрация: 07.11.2012
Сообщений: 9
03.02.2013, 01:22
Так устроит?
Вложения
Тип файла: zip JavaApplication.zip (25.4 Кб, 2 просмотров)
Тип файла: zip Application.zip (3.5 Кб, 3 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.02.2013, 01:22
Помогаю со студенческими работами здесь

Расположение Jbutton
Хочу изменить расположение и размер кнопки. Если не использую методы, то кнопка создается где-то по середине окна. А при использовании...

Массив JButton и ActionListener
Доброго времени суток! Возникла вот такая проблема я создаю окно и создаю класс в котором есть кнопка и координаты Y и X. Потом создаю 2-й...

Поскажте по массиву из JButton
import java.awt.Color; import java.awt.GridLayout; import java.util.ArrayList; import javax.swing.JButton; import...

Изменение прозрачности JButton
Доброго времени суток, уважаемые форумчане. У меня есть кнопка, которая меняет цвет текста, если на нее навести мышку. Проблема в том, что...

JButton: цвет фона
Какой стандартный цвет у кнопки JButton?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru