- •§ 1. Основные понятия теории метода сеток
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Глава 11
- •§ 1. Решение интегральных уравнений методом замены интеграла квадратурной суммой
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Глава 7. Искусство расположения
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •§ 2. Решение интегральных уравнений с помощью замены ядра на вырожденное
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •// 2. Поочередно создаются "полосы", на которые
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Глава 8. Вывод вспомогательной информации
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •// 2. Поочередно создаются "полосы", на которые
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Глава 7. Искусство расположения
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •§ 1. Основные понятия теории метода сеток
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Глава 11
- •§ 1. Решение интегральных уравнений методом замены интеграла квадратурной суммой
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Глава 7. Искусство расположения
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •§ 2. Решение интегральных уравнений с помощью замены ядра на вырожденное
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
- •// 2. Поочередно создаются "полосы", на которые
- •Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
Отформатировать текст по стп мгупи. Оформить рисунки и программный кода
Поддержка надписями JLabel языка HTML возводит их в ранг универсального информационного элемента, позволяющего вывести любой тип информации. Многострочные надписи, различные шрифты и выравнивания, любые цвета, нумерованные и маркированные списки, изображения — все у вас в руках. Однако чересчур увлекаться возможностями HTML не стоит, потому что надписи должны сообщать пользователю полезную информацию, а не отвлекать его внимание буйством красок. К тому же HTML-текст выводится на надписи в своеобразной форме, несколько отличающейся от того, что показало бы большинство браузеров, и все это может привести к визуальному конфликту между стилем используемого внешнего вида и некоторыми компонентами, поэтому необходимо точно знать, что вы хотите получить.
Надписи и события
Надпись JLabel — такой же компонент, как и остальные, унаследованный от базового класса JComponent, поэтому она может обрабатывать любые виды общих для всех компонентов событий: надо лишь добавить к ней соответствующих слушателей. Но чаще всего надпись просто сообщает что-то пользователю, а не обрабатывает событий, чтобы не вводить его в заблуждение (помните принцип простого интерфейса с очевидным предназначением). Пользователь привык, что надписи выводят информацию, и не отвечают за что-то большее. Если вам нужно выполнять в приложении какую-то функцию, инициируйте ее выполнение с помощью кнопки или клавиатурного сокращения, в качестве альтернативы можно предложить компонент-гиперссылку JXHyperlink из пакета дополнений SwingX.
Надписи также не принимают фокус ввода, их свойство focusable по умолчанию установлено в false. Если только вы не хотите огорошить пользователей новаторским интерфейсом, в котором надписи живут своей жизнью, стандартное поведение вряд ли стоит менять.
Надписи и мнемоники
Создатели Swing добавили в надписи JLabel еще одну возможность, позволяющую отточить функциональность вашего пользовательского интерфейса. Надписи могут поддерживать мнемоники (mnemonics) для других компонентов, неспособных поддерживать их самостоятельно. Мнемоника — это специальное клавиатурное сокращение (на большинстве платформ сочетание клавиши Alt или Ctrl с кодом клавиши), позволяющая быстро активировать некоторый компонент интерфейса, например, кнопку или текстовое поле. В сложных интерфейсах, состоящих из множества компонентов, находить нужный компонент (который, возможно, является самым важным) может быть утомительно, и в таких ситуациях мнемоники очень полезны. Более того, они незаменимы для пользователей с ограниченными возможностями, которые не могут пользоваться мышью. Приложение высокого класса обязано предоставлять доступ с клавиатуры ко всем своим компонентам.
Некоторые компоненты, например кнопки, сами поддерживают мнемоники, другие, такие как текстовые поля или раскрывающиеся списки, могут поддерживать клавиатурные сокращения, но удобно информировать о них пользователя не в состоянии. Здесь пригодится надпись с мнемоникой около компонента: пользователь быстро увидит, как активируется данный компонент, потому что символ мнемоники в тексте надписи подчеркивается.
Поддержка мнемоник реализована в UI-представителе надписи JLabel, причем сдельно все довольно интересно: когда вы сообщаете надписи, что хотели бы использовать ее для вывода мнемоники некоторого компонента, UI-представитель, во-первых, подчеркивает символ мнемоники при прорисовке надписи, во-вторых, регистрирует в кар
те входных событий нужное клавиатурное сокращение. При срабатывании сокращения -^дпись на мгновение получает фокус ввода (фокус сохраняется на надписи, пока вы зерживаете клавиши), при отпускании клавиш фокус переходит к компоненту, для ко-
: эого была задана мнемоника, а затем надпись снова возвращается в обычное состояние (без фокуса ввода). Давайте увидим все в действии:
// LabelMnemonic.java
// Использование надписей для вырода мнемоник importjavax.swing.*; importjava.awt.*;
(setLabelFor()), а также символ мнемоники, клавишу которого вместе с управляющей клавишей и нужно будет нажать (setDisplayedMnemonicO). Запустив пример, вы увидите, что надпись подсказывает пользователю, каким символом можно активизировать текстовое поле при нажатии нужного сочетания (чаще всего Alt+символ, в нашем случае Alt+И). Втекущих выпускахJDK 1.6 - 1.7 кириллические символы поддерживаются'1, что замечательно, так как в первом издании книги мы сломали немало копий по этому поводу.
Общая рекомендация для интерфейса говорит, что гсекомпоненты должны быть снабжены мнемониками, поэтому рассмотренная нами возможность несомненно полезна.
Всплывающие подсказки
Всплывающие подсказки (tool tips) — неизменный атрибут современного пользовательского интерфейса, и не зря: они намного упрощают ознакомление и последующую работу с вашим приложением. Это небольшие (чаще всего, хотя и не обязательно) текстовые описания компонентов вашего интерфейса, появляющиеся рядом с компонентом в том случае, если пользователь ненадолго задерживает на нем указатель мыши. Ценность всплывающих подсказок трудно переоценить — они намного ускоряют работу с любым, особенно сложным приложением. Вместо знакомства с документацией пользователь может прямо «на лету» узнать, для чего предназначен тот или иной элемент интерфейса, и быстро начать работу. Работу кнопками, на которых есть только значки, вообще невозможно представить без подсказок5. В Swing это особенно верно, потому что подсказк;: здесь обладают весьма широкими возможностями.
4 К сожалению, только для надписей, но не для кнопок и меню
5 Интересно, что кнопки с мелкими значками, так популярные в современных приложение от Web до мобильных устройств, часто подвергаются критике специалистов по удобству интерфейсов. Действительно, и попасть трудно, и почитать надо перед тем как нажимать, универсальна”.значков мало. Автор согласен с тем, что если есть место для текста, лучше сделать элемент с тестом, чем с красочным значком.
Любой компонент Swing может обладать всплывающей подсказкой, потому что поддержка их встроена в базовый класс библиотеки JComponent. Когда вы вызываете мето- setToolTipText(), компонент регистрирует себя в классе ToolTipManager, который отвечает за правильный вывод подсказок. Класс ToolTipManagerследит за перемещениями мыши на всех зарегистрированных в нем компонентах и при наступлении нужного момент! (наведении указателя мыши) выводит подсказку на экран. Рассмотрим пример с подсказками:
// ToolTips.java // ПодсказкивSwing import javax.swing.*; import java.awt.*; import java.awt.event.*;
public class ToolTips extends JFrame {
public ToolTips () (
super("ToolTips");
setDefaultCloseOperation(EXIT_ON_CLOSE);
// добавим несколько кнопок с подсказками
JButton Ы = newJButton("Один");
bl.setToolTipText("Это первая кнопка");
JButton Ь2 = new JButton() {
public Point getToolTipLocation(MouseEvent e) { return new Point{10, 10);
}
public String getToolTipText(MouseEvent e) { if ( e.getY() > 10 ) {
return "Нижняя часть кнопки!";
)
return super.getToolTipText(e);
}
} ;
b2.setText("Два");
b2.setToolTipText("<html><h3>3TO вторая кнопка.<ul>" +
"Она: <Ы>Ничего не делает<И>Но ее можно нажать!");
JPanel contents = new JPanelO; contents.add(bl); contents.add(b2);
// выводим окно на экран add(contents); setSize (400, 150); setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater( new Runnable(J { public void run() { new ToolTips(); } });
}
}
Отформатировать таблицу по СТП МГУПИ
Отформатировать текст по СТП МГУПИ, ввести формулы с помощью инструмента MSEquation
Вариант № 18