Такой вот код рисует квадратик во fluxbox'е в awesome нет.
Код:
...
class GPanel extends JPanel {
@Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
super.paint(g);
g.setColor(Color.cyan);
g.drawRect(40, 40, 20, 20);
}
}
public class TreeManager {
public static void main(String arg[]) {
JFrame mainFrame = new JFrame();
mainFrame.setMinimumSize(new Dimension(600,600));
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GPanel panel = new GPanel();
mainFrame.setContentPane(panel);
mainFrame.pack();
mainFrame.setVisible(true);
}
}
Такой вот код рисует везде:
Код:
class MyCanvas extends Canvas {
@Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
System.out.println("onPaint");
super.paint(g);
g.setColor(Color.red);
g.drawRect(30, 30, 380, 380);
g.drawArc(30, 30, 280, 80, 0, 360);
}
}
public class TreeManager {
public static void main(String arg[]) {
JFrame mainFrame = new JFrame();
mainFrame.setMinimumSize(new Dimension(600,600));
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.add(new MyCanvas());
mainFrame.setVisible(true);
}
}
Только проблема в том, что этот MyCanvas при попытке запихнуть на JPanel опять перестает рисоваться.
Перепробовал кучу способов, как быть? что я делаю не так? может кто подскажет?
В том то и дело, что оно должно рисовать, и оно рисует во fluxboxe (у меня) оба эти примера, но в awesome первый не рисуется, а мне нужно испрользовать подобный вывод.
java-приложения частенько не работают как следует в тайловых WM. Обычно лечится выставлением корневому окну какого-то специального атома (кажется, _NET_WM_NAME). См. документацию по awesome на эту тему, в общем.
Насколько я понимаю, проблемы были с приложениями, использующими JDK 1.4/1.5 о чем собственно и написано в мануле. Решением проблем с данными версиями было в установке AWT_TOOLKIT=MToolkit, но при попытке запустить даже просто окошко (JDK 1.6) приложение крэшится и выкидывает, что-то подобное:
Код:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f42a449b7df, pid=26795, tid=139924187466064
#
# JRE version: 6.0_15-b03
# Java VM: Java HotSpot™ 64-Bit Server VM (14.1-b02 mixed mode linux-amd64 )
# Problematic frame:
# C [libc.so.6+0x307df] catgets+0x1f
#
# An error report file with more information is saved as:
# /home/fijiol/workspace/TreeManager/bin/hs_err_pid26795.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
установка этой переменной окружения (AWT_TOOLKIT) на работу того же eclipse не повлияла никак (за исключением того, что приложение которое в нем компилирую, содержащее только создание фрейма, опять таки крэшится)....
установка этой переменной окружения (AWT_TOOLKIT) на работу того же eclipse не повлияла никак (за исключением того, что приложение которое в нем компилирую, содержащее только создание фрейма, опять таки крэшится)....
Eclipse не использует AWT/Swing, поэтому на него и не должно было повлиять.