Ответы пользователя по тегу Java
  • Как расположить элементы в java?

    @zelan
    Кратко обо мне не получится.
    MigLayout - неплохой менеджер раскладки, на странице большая желтая кнопка с описанием как им пользоваться.

    GridLayout которым пользуетесь сейчас вы, создает сетку с ячейками одного размера. При помещении элемента в ячейку - он растягивается на весь размер ячейки.

    Если размер не важен, и растягивать окно не собираешься, то можно отключить лэйаут и разложить элементы самому задав размеры и координаты.

    Например:
    public static void main(String[] args) {
            JFrame frame = new JFrame();
            frame.setLayout(new BorderLayout());
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //реальное закрытие программы, при закрытии окна(нажатии на красный крестик) 
            frame.setSize(400, 400);
    
    
            //панель для расположения элементов , в конструкторе передается менеджер раскладки, null - AbsoluteLayout ( для добавления компонентов необходимо указывать координаты и размер)
            JPanel panel = new JPanel(null);
    
            //установка панели во фрейм в центральную часть (панель будет растягиваться на весь фрейм)
            frame.add(panel, BorderLayout.CENTER);
            //текстовое поле
            JTextField field = new JTextField("Text");
    
            //установка координаты и размеров (x, y, ширина, высота) для компонента (рабо
            field.setBounds(20,20,200,20);
    
            //добавление поля на панель
            panel.add(field);
    
    
            frame.setVisible(true);
        }


    Ну а дальше по аналогии
    Ответ написан
    Комментировать
  • Как сделать горизонтальную прокрутку JList?

    @zelan
    Кратко обо мне не получится.
    вместо листа
    mainPanel.add(list, BorderLayout.WEST);

    нужно вставлять скролпэйн с листом
    mainPanel.add(pane, BorderLayout.WEST);

    В вашем случае при изменении размеров окна будет работать самый верхний скролпейн. pack рассчитает размеры таким образом чтобы все компоненты влезли в область видимости и не включили прокрутку.
    frame.add(new JScrollPane(mainPanel)); //от скролла лучше избавиться
    frame.pack(); //а паком нужно уметь пользоваться,  для многих компонентов нужно указывать предпочтительный размер иначе pack может натворить дел.Я не пользуюсь им вовсе.


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

    Например если добавить инициализацию предпочтительных размеров скролпейна с листом.
    pane.setPreferredSize(new Dimension(50,10)); //50 ширина, 10 проигнорируется лэйоутом в данном случае.

    то все должно заработать как вам нужно.

    А вообще переходите на JavaFX, там все проще.
    Ответ написан
    1 комментарий
  • В чём проблема моей реализации игры Guess Number?

    @zelan
    Кратко обо мне не получится.
    что сразу бросается в глаза - массив array заполнен нулями.
    Добавьте явную инициализацию элементов массива.

    int[] array = new int[1000];
    for (int i = 0; i < array.length; i++) {
        array[i] = i;
    }
    Ответ написан
  • Как собрать java проект в netbeans, что бы он был exe файлом с "моей иконкой"?

    @zelan
    Кратко обо мне не получится.
    В любом IDE (NetBeans, IDEA, Eclipse) делаешь jar файл, желательно "Runnable Jar".
    Качаешь крутую программу Launch4j, указываешь путь к jar, путь к иконке, куда сохранить exe, и на одной из вкладок минимальную версию java. Нажимаешь собрать и вуаля.
    Ответ написан
    2 комментария
  • Как соединить массив с массивом (byte) в Java?

    @zelan
    Кратко обо мне не получится.
    С помощью стандартной библиотеки
    ByteArrayOutputStream outStream = new ByteArrayOutputStream();
    outStream.write(byte_1);
    outStream.write(byte_2);
    byte[] mass = outStream.toByteArray();


    И второй вариант,
    byte[] mass = new byte[byte_1.length() + byte_2.length()]
    System.arrayCopy(byte_1, 0, mass, 0, byte_1.length());
    System.arrayCopy(byte_2, 0, mass, byte_1.length(), byte_2.length());
    Ответ написан
    1 комментарий
  • Как сделать красивый интерфейс на swing?

    @zelan
    Кратко обо мне не получится.
    Сай крутой библиотеки
    Jar файл с примерами всех компонентов и их некотор...
    Крутейшая вещь. Качай джарник запускай и смотри. То что есть в демо - это не все на что способны компоненты.

    Помимо этого можно научиться писать отрисовку самому. Но в действительности для рутинных и стандартных задач лучше использовать библиотеку(ссылка выше) или забыть о Swing вообще и использовать JavaFX.
    Ответ написан
    Комментировать
  • Как изменить код?

    @zelan
    Кратко обо мне не получится.
    Поидее достаточно заменить
    boolean p, q;
    на
    int p, q;

    и дальше в коде в местах инициализации переменных
    p = true; q = false;
    заменить true на 1, а false на 0

    p = 1; 
    q = 0;
    Ответ написан
    7 комментариев
  • Как изменить цвет текста в JTextArea?

    @zelan
    Кратко обо мне не получится.
    JTextArea field_textArea = new JTextArea();
    field_textArea.setForeground(Color.green);


    Всегда так было вроде. А как ты пытался сделать?
    Ответ написан
    4 комментария
  • Ничего не происходит, что делать?

    @zelan
    Кратко обо мне не получится.
    deviden[i] = deviden[i=1] / 2;

    тут i приравнивается к 1, так делать не надо, возможно это опечатка.
    Из-за этого приравнивания внешний for является бесконечным. Программа работает, но из цикла выйти не может. Посмотри в диспетчере задач - будет работать столько процессов Java сколько раз ты вызывал программу.
    Ответ написан
    Комментировать
  • Как собрать проект с темой Metal в NetBeans JAVA?

    @zelan
    Кратко обо мне не получится.
    UIManager.setLookAndFeel(new MetalLookAndFeel());

    прям первой строкой в main() пиши.
    Ответ написан
    Комментировать
  • Как подключить window Builder к проекту в eclipse?

    @zelan
    Кратко обо мне не получится.
    В эксплорере проектов (Package Explorer):
    - щелкаешь правой кнопкой по классу
    - открывается контекстное меню
    - пункт "Open With"
    - в выпадающем окне пункт "WindowBuilder Editor"
    - после этого должна появиться известная Вам вкладка "Design", обычно в нижней части окна в котором пишется код

    Если пункта "WindowBuilder Editor" нет, то плагин не установлен
    Ответ написан
    1 комментарий
  • Какие существуют графические среды разработки для Java?

    @zelan
    Кратко обо мне не получится.
    Плагин под Eclipse

    Очень хороший плагин, коллега пользуется. Можно лезть в сгенерированный код как захочется. Написанные вручную компоненты тоже отображает отлично, т.е. ты можешь писать код вручную, а плагин его в реальном времени отобразит. Редактор в нетбинсе мне не понравился потому что он запрещал мне лезть в его сгенерированный код (я не разобрался как отменить это ограничение). А что такое нетбинс чтобы мне что-либо запрещать?
    Ответ написан
    Комментировать
  • Массив JAVA, как получить доступ к элементу строки в массиве?

    @zelan
    Кратко обо мне не получится.
    String[] stringArray = {"Hello","world"};
    		
    		
    		//перебираем по очереди каждое слово массива строк
    		for (String string : stringArray) {
    			/*
    			 * конвертируем текущий элемент  массива строк в массив символов
    			 */
    			char[] charArray = stringArray[0].toCharArray();
    			
    			/*
    			 * Перебираем посимвольно массив символов полученыый выше
    			 * до тех пор пока массив не закончится
    			 */
    			for (char simvol : charArray) {
    				//делаем чтонибкдь с символом simvol
    				//например:
    				System.out.println("'" + simvol + "' " );
    			}
    			
    			System.out.println();
    		}
    		
    		/*
    		 * Результат выполнения
    		 * 
    		 * 'H' 'e' 'l' 'l' 'o'
    		 * 'w' 'o' 'r' 'l' 'd'
    		 */
    Ответ написан
    Комментировать
  • Кто может поделиться опытом по курсам Java на proglive?

    @zelan
    Кратко обо мне не получится.
    Забрал деньги после первого урока. Преподается все на уровне описания конструкций языка. БОльшая часть урока была посвящена истории языка, его истоках, авторах и т.д. В конце урока был написан хелло ворлд. Итого за 1 урок из 8, не был получено ничего. Не советую ни для кого.
    Ответ написан
    1 комментарий
  • Как полностью очистить jtable?

    @zelan
    Кратко обо мне не получится.
    Что если в таблицу просто установить новую модель?
    Ответ написан
    Комментировать
  • Пролистование страниц с JTextAre?

    @zelan
    Кратко обо мне не получится.
    Для свинга

    public static void main(String[] args) {
    		
    		JFrame frame = new JFrame();
    		frame.setPreferredSize(new Dimension(300, 300));
    		frame.setSize(300, 300);
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		
    		
    		JTextArea textArea  = new JTextArea();
    		
    		/*
    		 * установи какой-нибудь текст или вбей прямо в окне
    		 */
    //		textArea.setText();
    		
    		/*
    		 * использование следующих 2 методов
    		 * отключает горизонтальный скроллинг компонента
    		 * тем самым пролистываение возможно только вертикально
    		 */
    		textArea.setLineWrap(true); 			//перенос только по символам символам
    		textArea.setWrapStyleWord(true);		//перенос по словам и символам (если слово не влезает по ширине окна)
    		JScrollPane scrollPane_TextArea = new JScrollPane(textArea);
    		
    		/**
    		 * просто тестовый размер
    		 */
    		scrollPane_TextArea.setPreferredSize(new Dimension(200, 200));
    		
    		/*
    		 * если вертикальный скрол не нужен то раскоментируй
    		 */
    //		scrollPane_TextArea.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER); 
    		
    		JButton button_PrevPage = new JButton("PrevPage");
    		JButton button_NextPage = new JButton("NextPage");
    		
    		
    		button_PrevPage.setActionCommand("prev");
    		button_NextPage.setActionCommand("next");
    		
    
    		class ChangePageListeners implements ActionListener{
    			
    			JScrollPane scrollPane;
    			public ChangePageListeners(JScrollPane scrollPane) {
    				this.scrollPane = scrollPane;
    			}
    
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				String command = e.getActionCommand();
    				
    				switch (command) {
    				case "prev":
    					changePage(false);
    					break;
    				case "next":
    					changePage(true);
    					break;
    				default:
    					break;
    				}
    				
    			}
    			
    			private void changePage(boolean next){
    				if(next == true){
    					int heigthPage = scrollPane.getHeight();
    					int currentPosition =  scrollPane.getVerticalScrollBar().getValue();				
    					scrollPane.getVerticalScrollBar().setValue(currentPosition + heigthPage);
    				}
    				
    				else{
    					int heigthPage = scrollPane.getHeight();
    					int currentPosition =  scrollPane.getVerticalScrollBar().getValue();				
    					scrollPane.getVerticalScrollBar().setValue(currentPosition - heigthPage);
    				}
    			}
    			
    		}
    		
    		ChangePageListeners changePageListeners = new ChangePageListeners(scrollPane_TextArea);
    		
    		/*
    		 * устанавливаем на кнопки слушатели
    		 */
    		button_NextPage.addActionListener(changePageListeners);
    		button_PrevPage.addActionListener(changePageListeners);
    		
    		
    		JPanel panel = new JPanel();
    		panel.add(scrollPane_TextArea);
    		panel.add(button_NextPage);
    		panel.add(button_PrevPage);
    		
    		frame.add(panel);
    		
    		frame.setVisible(true);
    	}
    Ответ написан
    Комментировать
  • Как в Java делать byte b; b++ и b-- правильно?

    @zelan
    Кратко обо мне не получится.
    ремарка: если тебе нужны значения от 0 до 255, то тип byte тебе не подходит. byte лежит в пределе от -128 до 127. В итоге если нужен диапазон от 0 и до 255 используй short или int, или же приводи b к int.

    Немного не понятна суть вопроса: имеется ввиду что если b=200, делаешь b+=100 и в результате хочешь получить 255 (эдакая защита от "переполнения")? или что-то другое?
    Ответ написан
    1 комментарий