С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
2 / 2 / 1
Регистрация: 17.12.2011
Сообщений: 20

Графический интерфейс. Создать окно, вставить в него таблицу, под таблицей add кнопку, чтобы при ее нажатии можно было вносить текст в каждую ячейky

12.01.2012, 18:27. Показов 3551. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
подскажите с кодом,ребят,желательно с комментариями.
я думала как это правильно сделать...
ход мыслей таков:
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
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
 
public class Menu
{
    public static void main(String[] args)
    {
        MenuFrame frame = new MenuFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        
    }
}
 
//фрейм,содержащий панель для рисования
 
    class MenuFrame extends JFrame
    {
    public MenuFrame()
    {
        setTitle("Menu);
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
        
//добавление панели к фрейму
        
        MenuPanel panel = new MenuPanel();
        add(panel);
        }
    private void add(MenuPanel panel) {
        // TODO Auto-generated method stub
        
    }
    public static final int DEFAULT_WIDTH = 600;
    public static final int DEFAULT_HEIGHT = 600;
        }
    
//панель, на которой будет отображаться таблица
    
    class MenuPanel extends JPanel
    {
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        
//рисование прямоугольника
        
        double leftX = 100;
        double topY = 100;
        double width = 200;
        double height = 150;
    Rectangle2D rect = new Rectangle2D.Double(leftX, topY, width, height);
    g2.draw(rect);
        
    }
    }
и дальше ступор..можно же нарисовать 2 линии:горизонтальную и вертикальную, ну чтобы из прямоугольника получилась таблица 2*2, а дальше? кнопку создать несложно...но как сделать чтобы когда ты ее кликаешь она ссылалась на каждую ячейку?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.01.2012, 18:27
Ответы с готовыми решениями:

В Access в Форме создать кнопку, чтобы при ее нажатии всплывало окно "Удалить таблицу?"
Нужно в Access в Форме создать кнопку, чтобы при ее нажатии всплывало окно "Удалить таблицу?" с помощью VBA кода с 2 кнопками...

как сделать, чтобы при нажатии на кнопку появлялась таблица, заданная мною, чтобы в полях таблицы можно было ввести информацию а потом сохранить ее
Здравствуйте! Подскажите, вот у меня есть веб-страница и код в ней. Если открыть в браузере, то сам будет кнопка, при помощи которой,...

Как можно сделать, чтобы при нажатии на кнопку ( Символ-Button) выходил текст в текстовое поле
Как можно сделать, чтобы при нажатии на кнопку ( Символ-Button) выходил текст в текстовое поле ? Например, при нажатии кнопки 1 писалось 1...

4
15 / 15 / 3
Регистрация: 12.07.2009
Сообщений: 114
13.01.2012, 01:38
Цитата Сообщение от tinki Посмотреть сообщение
можно же нарисовать 2 линии:горизонтальную и вертикальную, ну чтобы из прямоугольника получилась таблица 2*2
может лучше использовать JTable?
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
14.01.2012, 15:21
tinki, если так не хочется использовать существующие компоненты, то можно использовать такой самодельный грид
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
JPanel tablePanel = new JPanel();
tablePanel.setSize(111, 62);
tablePanel.setLocation(...);
tablePanel.setVisible(true);
tablePanel.setLayout(null);
JTextField [][] cell = new JTextField[3][3];
int i, j, x = 0, y = 0;
for (i = 0; i < 3; ++i, x = 0, y += 20) {
   for (j = 0; j < 3; ++j, x += 37) {
      cell[i][j] = new JTextField();
      cell[i][j].setLocation(x, y);
      cell[i][j].setVisible(true);
      cell[i][j].setSize(37, 20);
      tablePanel.add(cell[i][j]);
   }
}
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
18.01.2012, 12:04
Думаю, что GridLayout будет удобней ручного распихивания компонентов.
0
2 / 2 / 1
Регистрация: 17.12.2011
Сообщений: 20
18.01.2012, 12:24  [ТС]
Цитата Сообщение от aleksandy Посмотреть сообщение
Думаю, что GridLayout будет удобней ручного распихивания компонентов.
спс, уже неактуальна эта тема =)
код вот в этой теме https://www.cyberforum.ru/java... 30421.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.01.2012, 12:24
Помогаю со студенческими работами здесь

Переделать модальное окно так, чтобы в него можно было загружать внешний файл
Кто нибудь может помочь и подсказать как это модальное окно переделать так что бы в него можно было загружать внешний файл. Как сделать...

Как создать поле с клетками, чтобы потом можно было в каждую клетку помещать определенную линию?
Скажите пожалуйста,как я могу создать поле с клетками,в каждую клетку потом чтобы я мог помещать определенную линию? какие компоненты...

Как при нажатии на кнопку вывести текст в окно в PyQt4?
Привет всем! Имеется проект на питоне(Код самого приложения, gui и скрипт их объединяющий) Как можно вывести строку, полученную во...

При нажатии на кнопку, текст добавляется в другую таблицу
Здравствуйте! При нажатии на кнопку, текст из одной таблицы добавляется в другую таблицу &lt;html&gt; &lt;head&gt; &lt;script...

Как сделать,чтобы при нажатии на кнопку открывалось дочернее окно?
Как сделать,чтобы при нажатии на кнопку открывалось дочернее окно?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru