Help with try and catch
I know I posted this quesiton earlier,but I am sitll having problems. In the following code, the exception IS caught if the user enters a String instead of a Int. But the Exception is NOT caught if the user enters
the "Enter" key.
do
flag=false;
//set the quantity to user input
System.out.print("Enter the quantity:");
try
amount = input.nextInt();
if (amount > 0) //executes when amount is less then or equal to zero
flag=false;
} //end of if
else
System.out.println("You must enter a positive quantity");
flag=true;
} //end of try
catch (Exception e)
input.nextLine();
System.out.println("You must enter a number");
flag=true;
}while(flag==true); //end of do while
nextInt won't read "just the enter key"... it blocks until reads "something".
Try something like this instead...
Note: java.io.Console is new in 1.6
package krc.utilz.io;
// usage:
// import krc.utilz.io.Console;
// String name = Console.readLine("Enter your name : ");
// while ( (score=Console.readInteger("Enter a score between 0 and 100 (enter to quit) : ", 0, 100, -1)) != 1) { ... }
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public abstract class Console
private static final java.io.Console theConsole = System.console();
private static final DateFormat dateFormatter = new SimpleDateFormat("dd/MM/yyyy");
public static String readLine(String prompt) {
while(true) {
try {
System.out.print(prompt);
return theConsole.readLine();
} catch (Exception e) {
System.out.println("Oops: "+e);
public static Date readDate(String prompt) {
while(true) {
try {
String response = readWord(prompt+" (dd/mm/yyyy) : ");
return dateFormatter.parse(response);
} catch (Exception e) {
System.out.println("Oops: "+e);
public static String readWord(String prompt) {
String response = null;
while(true) {
try {
response = readLine(prompt);
if( response!=null && response.length()>0 && response.indexOf(' ')<0 ) break;
System.out.println("A single word is required. No spaces.");
} catch (Exception e) {
System.out.println("Oops: "+e);
return(response);
public static char readLetter(String prompt) {
char c = '\0';
while(true) {
try {
String response = readLine(prompt);
if ( response!=null && response.length()>0 ) {
c = response.charAt(0);
if(Character. isLetter(c)) break;
System.out.println("A letter (A through Z) is required. Upper or lower case.");
} catch (Exception e) {
System.out.println("Oops: "+e);
return(c);
public static int readInteger(String prompt) {
int i = 0;
String response = null;
while(true) {
try {
response = readLine(prompt);
if ( response!=null && response.length()>0 ) {
i = Integer.parseInt(response);
break;
System.out.println("An integer is required.");
} catch (NumberFormatException e) {
System.out.println("\""+response+"\" cannot be interpreted as an integer!");
} catch (Exception e) {
System.out.println("Oops: "+e);
return(i);
public static int readInteger(String prompt, int lowerBound, int upperBound) {
int i = 0;
while(true) {
i = readInteger(prompt);
if ( i>=lowerBound && i<=upperBound ) break;
System.out.println("An integer between "+lowerBound+" and "+upperBound+" (inclusive) is required.");
return(i);
public static int readInteger(String prompt, int defualt) {
int i = 0;
String response = null;
while(true) {
try {
response = readLine(prompt);
return (response!=null && response.trim().length()>0
? Integer.parseInt(response)
: defualt
} catch (NumberFormatException e) {
System.out.println("\""+response+"\" cannot be interpreted as an integer!");
} catch (Exception e) {
System.out.println("Oops: "+e);
public static int readInteger(String prompt, int lowerBound, int upperBound, int defualt) {
int i = 0;
while(true) {
i = readInteger(prompt, defualt);
if ( i==defualt || i>=lowerBound && i<=upperBound ) break;
System.out.println("An integer between "+lowerBound+" and "+upperBound+" (inclusive) is required.");
return(i);
public static double readDouble(String prompt) {
double d = 0;
String response = null;
while(true) {
try {
response = readLine(prompt);
if ( response!=null && response.length()>0 ) {
d = Double.parseDouble(response);
break;
System.out.println("A number is required.");
} catch (NumberFormatException e) {
System.out.println("\""+response+"\" cannot be interpreted as a number!");
} catch (Exception e) {
System.out.println("Oops: "+e);
return(d);
public static double readDouble(String prompt, double lowerBound, double upperBound) {
while(true) {
double d = readDouble(prompt);
if ( d>=lowerBound && d<=upperBound ) return(d);
System.out.println("A number between "+lowerBound+" and "+upperBound+" (inclusive) is required.");
public static boolean readBoolean(String prompt) {
while(true) {
try {
String response = readWord(prompt+" (Y/N) : ");
return response.trim().equalsIgnoreCase("Y");
} catch (Exception e) {
System.out.println("Oops: "+e);
}
Similar Messages
-
with out any try and catch is exception handling is possible in java when doing manupulation with database.
assume mydatabase is oracle,if i am going to insert a record of a primarykey field, which is already existing.i don't want to put with in try and catch.This is my case.if u have the answer for this please mail me.
thanks
rajanassume mydatabase is oracle,if i am going to insert a
record of a primarykey field, which is already existing.
i don't want to put with in try and catch.why not? i thought the fact that checked exceptions get thrown from methods is a good thing, since you're forced either to deal with the fault immediately, or throw to the next level up, possibly transformed into an application-level exception. if methods were to simply return method-specific error codes, nothing forces anything in the program to deal with errors in a reasonable manner. not that exceptions force sensible handling of the fault--but they do force recognition of the fault.
what alternative do you desire?
--p -
Try and Catch don't work on powershell module
Hi everyone,
i'm tring to create a module with a try and catch, but when i call it, the block of expetion doesn't work as i expect, while if i use the code as a function only it works...
Here the code
function global:Process{
param([string]$Process)
######################################MAIL################################
function global:SendMail(){
param([string]$Services)
$Dest="xxx"
$smtpServer = "xxx"
$msg = new-object Net.Mail.MailMessage
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$msg.From = "xxx"
$msg.To.Add($Dest)
$msg.Subject = "Notification about $Services activity"
$msg.Body = "xxxx"
$smtp.Send($msg)
switch($Process){
"DSP"{
if((Get-Service Fax | ForEach-Object {$_.Status}) -eq "Stopped"){
try
start-service Fax -ea Stop
catch
if ( $error[0].Exception -match "Microsoft.PowerShell.Commands.ServiceCommandException")
$error[0].Exception | Out-File C:\log.txt
$SendMail $Process
elseif((Get-Service Fax | ForEach-Object {$_.Status}) -eq "Running"){
Stop-Service Fax}
Export-ModuleMember -Function Process
Could you help me? Thanks so much
CristianHello,
You should ask in the
Windows PowerShell forum.
Karl
When you see answers and helpful posts, please click Vote As Helpful, Propose As Answer, and/or Mark As Answer.
My Blog: Unlock PowerShell
My Book:
Windows PowerShell 2.0 Bible
My E-mail: -join ('6F6C646B61726C406F75746C6F6F6B2E636F6D'-split'(?<=\G.{2})'|%{if($_){[char][int]"0x$_"}}) -
Help with writing and retrieving data from a table field with type "LCHR"
Hi Experts,
I need help with writing and reading data from a database table field which has a type of "LCHR". I have given an example of the original code but don't know what to change it to in order to fix it and still read in the original data that's stored in the LCHR field.
Basically we have two Function modules, one that saves list data to a database table and one that reads in this data. Both Function modules have an identicle table which has an array of fields from type INT4, CHAR, and type P. The INT4 field is the first one.
Incidentally this worked in the 4.7 non-unicode system but is now dumping in the new ECC6 Unicode system.
Thanks in advance,
C
SAVING THE LIST DATA TO DB
DATA: L_WA(800).
LOOP AT T_TAB into L_WA.
ZDBTAB-DATALEN = STRLEN( L_WA ).
MOVE: L_WA to ZDBTAB-RAWDATA.
ZDBTAB-LINENUM = SY-TABIX.
INSERT ZDBTAB.
READING THE DATA FROM DB
DATA: BEGIN OF T_DATA,
SEQNR type ZDBTAB-LINENUM,
DATA type ZDBTAB-RAWDATA,
END OF T_TAB.
Select the data.
SELECT linenum rawdata from ZDBTAB into table T_DATA
WHERE repid = w_repname
AND rundate = w_rundate
ORDER BY linenum.
Populate calling Internal Table.
LOOP AT T-DATA.
APPEND T_DATA to T_TAB.
ENDLOOP.Hi Anuj,
The unicode flag is active.
When I run our report and then to try and save the list data a dump is happening at the following point
LOOP AT T_TAB into L_WA.
As I say, T_TAB consists of different fields and field types whereas L_WA is CHAR 800. The dump mentions UC_OBJECTS_NOT_CONVERTIBLE
When I try to load a saved list the dump is happening at the following point
APPEND T_DATA-RAWDATA to T_TAB.
T_DATA-RAWDATA is type LCHR and T_TAB consists of different fields and field types.
In both examples the dumps mention UC_OBJECTS_NOT_CONVERTIBLE
Regards
C -
Repost as question for points: What did I do wrong? (Try and Catch program)
This has to be a try and catch program.
This is the given output sample:
OUTPUT SAMPLE #2 for input.txt: 12345 222256 -3 123 -56784 555557 6345678 x x x 81234 121212 x x 123434 x x 1009098 2099
Please input the name of the file to be opened: input.txt
For number 12345 the sum of digits is: 15
For number 222256 the sum of digits is: 19
Found an integer (-3), but it is negative. Will ignore!
For number 123 the sum of digits is: 6
Found an integer (-56784), but it is negative. Will ignore!
For number 555557 the sum of digits is: 32
For number 6345678 the sum of digits is: 39
For number 81234 the sum of digits is: 18
For number 121212 the sum of digits is: 9
For number 123434 the sum of digits is: 17
For number 1009098 the sum of digits is: 27
For number 2099 the sum of digits is: 20
Here is what I have so far.
import java.util.Scanner;
import java.io.*;// FileNotFoundException
public class Assignment3b {
public static void main (String[]args){
Boolean fileOpened = true;
String fileName;
int n,mod=0,sum=0,t=0;
Scanner inputFile = new Scanner(System.in);
System.out.print("Please input the name of the file to be opened: ");
fileName = inputFile.nextLine();
System.out.println();
try {
inputFile = new Scanner(new File(fileName));
catch (FileNotFoundException e) {
System.out.println("--- File Not Found! ---");
fileOpened = false;
if (fileOpened) {
while (inputFile.hasNext()){
if (inputFile.hasNextInt()){
n = inputFile.nextInt();
t=n;
while(n>0){
mod = n % 10;
sum = mod + sum;
n = n/10;
System.out.println ("For number " + t + " the sum of digits is : " + sum);
mod = 0;
sum = 0;
while (n<0) {
System.out.println ("Found an integer (" + t + "), but it negative. Will ignore!");
inputFile.next();
n = inputFile.nextInt();
else {
inputFile.next();
}Everything seems to work fine until, it is time to deal with negative numbers. How can I fix this. Please put your reply in layman's terms to the best of your ability.
Thanks and God Bless.// COSC 236 Assignment # 3
// YOUR NAME: Anson Castelino
// DUE-DATE:
// PROGRAM-NAME: Assignment # 3 Prt2
//import packages
import java.util.Scanner;
import java.io.*;// FileNotFoundException
public class Assignment3b {
public static void main (String[]args){
Boolean fileOpened = true;
String fileName;
int n,mod=0,sum=0,t=0;
Scanner inputFile = new Scanner(System.in);
System.out.print("Please input the name of the file to be opened: ");
fileName = inputFile.nextLine();
System.out.println();
try {
inputFile = new Scanner(new File(fileName));
catch (FileNotFoundException e) {
System.out.println("--- File Not Found! ---");
fileOpened = false;
if (fileOpened) {
while (inputFile.hasNext()){
if (inputFile.hasNextInt()){
n = inputFile.nextInt();
t=n;
while(n>0){
mod = n % 10;
sum = mod + sum;
n = n/10;
System.out.println ("For number " + t + " the sum of digits is : " + sum);
mod = 0;
sum = 0;
if (n<0) {
System.out.println ("Found an integer (" + t + "), but it is negative. Will ignore!");
inputFile.next();
inputFile.hasNext();
else {
inputFile.next();
}Updated code.
current output is as follows:
Please input the name of the file to be opened: [DrJava Input Box]
For number 12345 the sum of digits is : 15
For number 222256 the sum of digits is : 19
For number -3 the sum of digits is : 0 <-------- this part is not suppose to be here.
Found an integer (-3), but it is negative. Will ignore!
For number -56784 the sum of digits is : 0 <-------- this part is not suppose to be here.
Found an integer (-56784), but it is negative. Will ignore!
For number 6345678 the sum of digits is : 39
For number 81234 the sum of digits is : 18
For number 121212 the sum of digits is : 9
For number 123434 the sum of digits is : 17
For number 1009098 the sum of digits is : 27
For number 2099 the sum of digits is : 20
> -
Hi All, just a quick question really...
Was wondering how I would go about checking user inputs into textfields?
For example if the user enters the number 12 and you're only allowed to enter numbers between 1-10 how could I send a pop up error message to say "You can only enter numbers between 1-10"
A way I thought about doing this was with a try and catch method, there could be another way of doing this, all other methods appreciated too.
function captureNumbers(evt:MouseEvent):void {
try{
numberSelect.push(Number(number1.text));
catch{
if (numberSelect > 10){
throw new Error("You must choose a number between 1 - 10");
button1.addEventListener( MouseEvent.MOUSE_UP, captureNumbers);
This is what ive got so far which doesn't seem to be working...
Thanks in advancepublic class userBean(String user) {
// Loads user preferences
String fname;
String lname;
String greeting;
void public readDB()
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet result = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
catch (Exception e) { System.out.println("Can't load JDBC driver:" + e); return; }
try{
conn = DriverManager.getConnection
("jdbc:oracle:thin:@username.domain.com:1521:adm2", "login", "pass");
// @machineName:port:SID, userid, password d
stmt = conn.prepareStatement("select fname,lname,greeting from people where userid = ?");
stmt.setString(1,user);
result= stmt.executeQuery();
fname = result.getString(1);
lname = result.getString(2);
stmt.close();
catch (Exception e) { System.out.println("Error with JDBC Connection:" + e); return;}
} -
Is there try and catch in oracle query ?
hi
is there try and catch in oracle query ?
try
do some update
catch
if there was error go to here
}>
is there try and catch in oracle query ?
>
Yes - except it uses BEGIN --- EXCEPTION --- END where BEGIN replaces the try and EXCEPTION replaces the catch.
BEGIN
-- Calculation might cause division-by-zero error.
pe_ratio := stock_price / net_earnings;
dbms_output.put_line('Price/earnings ratio = ' || pe_ratio);
EXCEPTION -- exception handlers begin
-- Only one of the WHEN blocks is executed.
WHEN ZERO_DIVIDE THEN -- handles 'division by zero' error
dbms_output.put_line('Company must have had zero earnings.');
pe_ratio := null;
WHEN OTHERS THEN -- handles all other errors
dbms_output.put_line('Some other kind of error occurred.');
pe_ratio := null;
END; -- exception handlers and block end here
/The multiple WHEN conditions correspond to using multiple 'catch' statements in Java. -
Hi I am using oracle 10g. Trying to aggregate duplicate count records. I have so far:
SELECT 'ST' LEDGER,
CASE
WHEN c.Category = 'E' THEN 'Headcount Exempt'
ELSE 'Headcount Non-Exempt'
END
ACCOUNTS,
CASE WHEN a.COMPANY = 'ZEE' THEN 'OH' ELSE 'NA' END MARKET,
'MARCH_12' AS PERIOD,
COUNT (a.empl_id) head_count
FROM essbase.employee_pubinfo a
LEFT OUTER JOIN MMS_DIST_COPY b
ON a.cost_ctr = TRIM (b.bu)
INNER JOIN MMS_GL_PAY_GROUPS c
ON a.pay_group = c.group_code
WHERE a.employee_status IN ('A', 'L', 'P', 'S')
AND FISCAL_YEAR = '2012'
AND FISCAL_MONTH = 'MARCH'
GROUP BY a.company,
b.district,
a.cost_ctr,
c.category,
a.fiscal_month,
a.fiscal_year;
which gives me same rows with different head_counts. I am trying to combine the same rows as a total (one record). Do I use a subquery?Hi,
Whenever you have a problem, please post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) from all tables involved.
Also post the results you want from that data, and an explanation of how you get those results from that data, with specific examples.
user610131 wrote:
... which gives me same rows with different head_counts.If they have different head_counts, then the rows are not the same.
I am trying to combine the same rows as a total (one record). Do I use a subquery?Maybe. It's more likely that you need a different GROUP BY clause, since the GROUP BY clause determines how many rows of output there will be. I'll be able to say more after you post the sample data, results, and explanation.
You may want both a sub-query and a different GROUP BY clause. For example:
WITH got_group_by_columns AS
SELECT a.empl_id
, CASE
WHEN c.category = 'E'
THEN 'Headcount Exempt'
ELSE 'Headcount Non-Exempt'
END AS accounts
, CASE
WHEN a.company = 'ZEE'
THEN 'OH'
ELSE 'NA'
END AS market
FROM essbase.employee_pubinfo a
LEFT OUTER JOIN mms_dist_copy b ON a.cost_ctr = TRIM (b.bu)
INNER JOIN mms_gl_pay_groups c ON a.pay_group = c.group_code
WHERE a.employee_status IN ('A', 'L', 'P', 'S')
AND fiscal_year = '2012'
AND fiscal_month = 'MARCH'
SELECT 'ST' AS ledger
, accounts
, market
, 'MARCH_12' AS period
, COUNT (empl_id) AS head_count
FROM got_group_by_columns
GROUP BY accounts
, market
;But that's just a wild guess.
You said you wanted "Help with count and sum". I see the COUNT, but what do you want with SUM? No doubt this will be clearer after you post the sample data and results.
Edited by: Frank Kulash on Apr 4, 2012 5:31 PM -
i recently downloaded itunes 10.3.1 for MAC. BUT everytime I go to help> to try and find the diagnostic options, there is no drop down option for diagnostic? Can someone help?
Why not available in Mac version. We are behind proxy and need this to see why iTunes isn't working?
-
I have a white screen on my ipod classic 80g need some help to try and resolve it . HELP PLEASE
iOS: Importing personal photos and videos from iOS devices to your computer
iOS: Unable to import photos or device not recognized as a camera -
MOVED: [Athlon64] Need Help with X64 and Promise 20378
This topic has been moved to Operating Systems.
[Athlon64] Need Help with X64 and Promise 20378I'm moving this the the Administration Forum. It seems more apporpiate there.
-
How the try and catch blocks work?
For the following section of code from the class QueueInheritanceTest...how the try and catch blocks work?
The Class...
public class QueueInheritance extends List {
public QueueInheritance() { super( "queue" ); }
public void enqueue( Object o )
{ insertAtBack( o ); }
public Object dequeue()
throws EmptyListException { return removeFromFront(); }
public boolean isEmpty() { return super.isEmpty(); }
public void print() { super.print(); }
Testing...
public class QueueInheritanceTest {
public static void main( String args[] ){
QueueInheritance objQueue = new QueueInheritance();
// Create objects to store in the queue
Boolean b = Boolean.TRUE;
Character c = new Character( '$' );
Integer i = new Integer( 34567 );
String s = "hello";
// Use the enqueue method
objQueue.enqueue( b );
objQueue.enqueue( c );
objQueue.enqueue( i );
objQueue.enqueue( s );
objQueue.print();
// Use the dequeue method
Object removedObj = null;
try { while ( true ) {
removedObj = objQueue.dequeue();
System.out.println(removedObj.toString()+" dequeued" );
objQueue.print();
catch ( EmptyListException e ) {
System.err.println( "\n" + e.toString() );If you want a basic introduction to try/catch blocks, read any introductory text or the tutorials on this site.
Here are some:
Sun's basic Java tutorial
Sun's New To Java Center.
JavaRanch. To quote the tagline on their homepage: "a friendly place for Java greenhorns."
In terms of this particular case, it looks like the code is using an exception being thrown to get out of a loop. IMHO that's bad design -- exceptions should be used for exceptional circumstances, and if you use it to get out of a loop, then you're certain it's going to happen, and that means that it's not exceptional.
When you post code, please wrap it in tags so it's legible. -
Need help with JTextArea and Scrolling
import java.awt.*;
import java.awt.event.*;
import java.text.DecimalFormat;
import javax.swing.*;
public class MORT_RETRY extends JFrame implements ActionListener
private JPanel keypad;
private JPanel buttons;
private JTextField lcdLoanAmt;
private JTextField lcdInterestRate;
private JTextField lcdTerm;
private JTextField lcdMonthlyPmt;
private JTextArea displayArea;
private JButton CalculateBtn;
private JButton ClrBtn;
private JButton CloseBtn;
private JButton Amortize;
private JScrollPane scroll;
private DecimalFormat calcPattern = new DecimalFormat("$###,###.00");
private String[] rateTerm = {"", "7years @ 5.35%", "15years @ 5.5%", "30years @ 5.75%"};
private JComboBox rateTermList;
double interest[] = {5.35, 5.5, 5.75};
int term[] = {7, 15, 30};
double balance, interestAmt, monthlyInterest, monthlyPayment, monPmtInt, monPmtPrin;
int termInMonths, month, termLoop, monthLoop;
public MORT_RETRY()
Container pane = getContentPane();
lcdLoanAmt = new JTextField();
lcdMonthlyPmt = new JTextField();
displayArea = new JTextArea();//DEFINE COMBOBOX AND SCROLL
rateTermList = new JComboBox(rateTerm);
scroll = new JScrollPane(displayArea);
scroll.setSize(600,170);
scroll.setLocation(150,270);//DEFINE BUTTONS
CalculateBtn = new JButton("Calculate");
ClrBtn = new JButton("Clear Fields");
CloseBtn = new JButton("Close");
Amortize = new JButton("Amortize");//DEFINE PANEL(S)
keypad = new JPanel();
buttons = new JPanel();//DEFINE KEYPAD PANEL LAYOUT
keypad.setLayout(new GridLayout( 4, 2, 5, 5));//SET CONTROLS ON KEYPAD PANEL
keypad.add(new JLabel("Loan Amount$ : "));
keypad.add(lcdLoanAmt);
keypad.add(new JLabel("Term of loan and Interest Rate: "));
keypad.add(rateTermList);
keypad.add(new JLabel("Monthly Payment : "));
keypad.add(lcdMonthlyPmt);
lcdMonthlyPmt.setEditable(false);
keypad.add(new JLabel("Amortize Table:"));
keypad.add(displayArea);
displayArea.setEditable(false);//DEFINE BUTTONS PANEL LAYOUT
buttons.setLayout(new GridLayout( 1, 3, 5, 5));//SET CONTROLS ON BUTTONS PANEL
buttons.add(CalculateBtn);
buttons.add(Amortize);
buttons.add(ClrBtn);
buttons.add(CloseBtn);//ADD ACTION LISTENER
CalculateBtn.addActionListener(this);
ClrBtn.addActionListener(this);
CloseBtn.addActionListener(this);
Amortize.addActionListener(this);
rateTermList.addActionListener(this);//ADD PANELS
pane.add(keypad, BorderLayout.NORTH);
pane.add(buttons, BorderLayout.SOUTH);
pane.add(scroll, BorderLayout.CENTER);
addWindowListener( new WindowAdapter()
public void windowClosing(WindowEvent e)
System.exit(0);
public void actionPerformed(ActionEvent e)
String arg = lcdLoanAmt.getText();
int combined = Integer.parseInt(arg);
if (e.getSource() == CalculateBtn)
try
JOptionPane.showMessageDialog(null, "Got try here", "Error", JOptionPane.ERROR_MESSAGE);
catch(NumberFormatException ev)
JOptionPane.showMessageDialog(null, "Got here", "Error", JOptionPane.ERROR_MESSAGE);
if ((e.getSource() == CalculateBtn) && (arg != null))
try{
if ((e.getSource() == CalculateBtn) && (rateTermList.getSelectedIndex() == 1))
monthlyInterest = interest[0] / (12 * 100);
termInMonths = term[0] * 12;
monthlyPayment = combined * (monthlyInterest / (1 - (Math.pow (1 + monthlyInterest, -termInMonths))));
lcdMonthlyPmt.setText(calcPattern.format(monthlyPayment));
if ((e.getSource() == CalculateBtn) && (rateTermList.getSelectedIndex() == 2))
monthlyInterest = interest[1] / (12 * 100);
termInMonths = term[1] * 12;
monthlyPayment = combined * (monthlyInterest / (1 - (Math.pow (1 + monthlyInterest, -termInMonths))));
lcdMonthlyPmt.setText(calcPattern.format(monthlyPayment));
if ((e.getSource() == CalculateBtn) && (rateTermList.getSelectedIndex() == 3))
monthlyInterest = interest[2] / (12 * 100);
termInMonths = term[2] * 12;
monthlyPayment = combined * (monthlyInterest / (1 - (Math.pow (1 + monthlyInterest, -termInMonths))));
lcdMonthlyPmt.setText(calcPattern.format(monthlyPayment));
catch(NumberFormatException ev)
JOptionPane.showMessageDialog(null, "Invalid Entry!\nPlease Try Again", "Error", JOptionPane.ERROR_MESSAGE);
} //IF STATEMENTS FOR AMORTIZATION
if ((e.getSource() == Amortize) && (rateTermList.getSelectedIndex() == 1))
loopy(7, 5.35);
if ((e.getSource() == Amortize) && (rateTermList.getSelectedIndex() == 2))
loopy(15, 5.5);
if ((e.getSource() == Amortize) && (rateTermList.getSelectedIndex() == 3))
loopy(30, 5.75);
if (e.getSource() == ClrBtn)
rateTermList.setSelectedIndex(0);
lcdLoanAmt.setText(null);
lcdMonthlyPmt.setText(null);
displayArea.setText(null);
if (e.getSource() == CloseBtn)
System.exit(0);
private void loopy(int lTerm,double lInterest)
double total, monthly, monthlyrate, monthint, monthprin, balance, lastint, paid;
int amount, months, termloop, monthloop;
String lcd2 = lcdLoanAmt.getText();
amount = Integer.parseInt(lcd2);
termloop = 1;
paid = 0.00;
monthlyrate = lInterest / (12 * 100);
months = lTerm * 12;
monthly = amount *(monthlyrate/(1-Math.pow(1+monthlyrate,-months)));
total = months * monthly;
balance = amount;
while (termloop <= lTerm)
displayArea.setCaretPosition(0);
displayArea.append("\n");
displayArea.append("Year " + termloop + " of " + lTerm + ": payments\n");
displayArea.append("\n");
displayArea.append("Month\tMonthly\tPrinciple\tInterest\tBalance\n");
monthloop = 1;
while (monthloop <= 12)
monthint = balance * monthlyrate;
monthprin = monthly - monthint;
balance -= monthprin;
paid += monthly;
displayArea.setCaretPosition(0);
displayArea.append(monthloop + "\t" + calcPattern.format(monthly) + "\t" + calcPattern.format(monthprin) + "\t");
displayArea.append(calcPattern.format(monthint) + "\t" + calcPattern.format(balance) + "\n");
monthloop ++;
termloop ++;
public static void main(String args[])
MORT_RETRY f = new MORT_RETRY();
f.setTitle("MORTGAGE PAYMENT CALCULATOR");
f.setBounds(600, 600, 500, 500);
f.setLocationRelativeTo(null);
f.setVisible(true);
}need help with displaying the textarea correctly and the scroll bar please.
Message was edited by:
new2this2020What's the problem you're having ???
PS. -
Help with WindowsDesktopSSO and AMIdentity.getAttributes
Hi guys and girls,
I need some help from you experts.
I successfully setup, thanks to this guide
http://blogs.oracle.com/knittel/entry/opensso_windowsdesktopsso
and a lot of trial & errors and googling a Kerberos authentication between OpenAM version 9.5.2 and an Active Directory Server.
When I navigate to openAM page (from a domain machine) http://<openAMhost>:<port>/opensso, it doesn't ask for credentials ...
and I can see, with ieHttpHeaders, kerberos data exchange.
Without creating an Active Directory DataStore (pointing to the same domain where I use kerberos data) in openAM,
when I navigate (from a domain machine) to /opensso/idm/EndUser page, it always gives me:
"Plug-in com.sun.identity.idm.plugins.ldapv3.LDAPv3Repo encountered an ldap exception. LDAP Error 32: The entry specified in the request does not exist."
Since my aim was to get user information from a web app ... I thought I could have done this with an agent/SDK call as I usually do with "classic" authentication.
Now I created a J2EE Agent (on openAM) to protect one of my application deployed on a JBoss 4.2.1-GA server.
Agent configured with default options and these changes:
Agent Filter Mode: J2EE_POLICY
User Mapping Mode: USER_ID
User Attribute Name: tried both with employeenumber and uid
User Principal Flag: enabled
User Token Name: UserToken
FQDN Check: tried both with enabled and disabled
WebAuthentication Available : Enabled
In my application WEB-INF/jboss-web.xml looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<security-domain>java:/jaas/AMRealm</security-domain>
</jboss-web>Usually, when I authenticate with "classic" (internal datastore) login, I can get user attributes programmatically with a code like this:
private String getCredenzialiUtente(HttpServletRequest request)
String SSOUsername = null;
SSOToken ssoToken = null;
SSOTokenManager manager = null;
try
manager = SSOTokenManager.getInstance();
if ( manager == null)
throw new RuntimeException("Unable to Get: SSOTokenManager");
String ssoTokenID = AmFilterManager.getAmSSOCache().getSSOTokenForUser(request);
ssoToken = manager.createSSOToken(ssoTokenID);
if ( ssoToken == null )
throw new RuntimeException("Unable to Get: TokenForUser");
AMIdentity amid = new AMIdentity(ssoToken);
if(amid == null)
throw new RuntimeException("Unable to Get: UserIdentity");
SSOUsername = amid.getName();
System.out.println("######### USERNAME FROM SSO: " + SSOUsername);
Set<String> info = new HashSet<String>();
info.add("uid");
info.add("givenName");
java.util.Map mappa = amid.getAttributes(info);
if ( mappa != null )
java.util.Set insieme = mappa.keySet();
java.util.Iterator it = insieme.iterator();
while ( it.hasNext() )
String n = it.next().toString();
System.out.println( n + " ==> " + mappa.get(n) );
else
System.err.println(" DAMN - NO ATTR ");
catch (Exception exception)
exception.getMessage();
exception.printStackTrace();
System.out.println("OUT getCredenzialiUtente: " + SSOUsername);
return SSOUsername;
} When I log to console with default "ldapService" module (outside the domain), I can get something like:
2011-09-29 13:14:38,733 INFO [STDOUT] ####################################### USER = amadmin
2011-09-29 13:15:32,250 INFO [STDOUT] IN getCredenzialiLAit
2011-09-29 13:15:32,260 INFO [STDOUT] ######### USERNAME DA SSO: a2zarrillo
2011-09-29 13:15:32,291 INFO [STDOUT] uid ==> [a2zarrillo]
2011-09-29 13:15:32,291 INFO [STDOUT] givenName ==> [Antonio2]
2011-09-29 13:15:32,311 INFO [STDOUT] OUT getCredenziali: a2zarrillo
2011-09-29 13:15:32,321 INFO [STDOUT] ####################################### USER = a2zarrillobut when i try to login from inside the domain (with kerberos, so no credentials) with a domain user, I get:
2011-09-29 13:15:39,496 INFO [STDOUT] IN getCredenzialiLAit
2011-09-29 13:15:39,503 INFO [STDOUT] ######### USERNAME DA SSO: tonyweb
2011-09-29 13:15:39,550 ERROR [STDERR] Message:Plug-in encountered an ldap exception. LDAP Error 32: The entry specified in the request does not exist.
2011-09-29 13:15:39,554 ERROR [STDERR] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
2011-09-29 13:15:39,560 ERROR [STDERR] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
2011-09-29 13:15:39,562 ERROR [STDERR] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
2011-09-29 13:15:39,566 ERROR [STDERR] at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
2011-09-29 13:15:39,574 ERROR [STDERR] at com.sun.identity.shared.jaxrpc.SOAPClient$SOAPContentHandler.createResourceBasedException(SOAPClient.java:834)
2011-09-29 13:15:39,575 ERROR [STDERR] at com.sun.identity.shared.jaxrpc.SOAPClient$SOAPContentHandler.endDocument(SOAPClient.java:800)
2011-09-29 13:15:39,578 ERROR [STDERR] at org.apache.xerces.parsers.AbstractSAXParser.endDocument(Unknown Source)
2011-09-29 13:15:39,582 ERROR [STDERR] at org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown Source)
2011-09-29 13:15:39,587 ERROR [STDERR] at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown Source)
2011-09-29 13:15:39,592 ERROR [STDERR] at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source)
2011-09-29 13:15:39,598 ERROR [STDERR] at org.apache.xerces.impl.XMLEntityScanner.skipSpaces(Unknown Source)
2011-09-29 13:15:39,600 ERROR [STDERR] at org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatch(Unknown Source)
2011-09-29 13:15:39,604 ERROR [STDERR] at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
2011-09-29 13:15:39,607 ERROR [STDERR] at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
2011-09-29 13:15:39,609 ERROR [STDERR] at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
2011-09-29 13:15:39,613 ERROR [STDERR] at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
2011-09-29 13:15:39,616 ERROR [STDERR] at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
2011-09-29 13:15:39,621 ERROR [STDERR] at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
2011-09-29 13:15:39,625 ERROR [STDERR] at com.sun.identity.shared.jaxrpc.SOAPClient.send(SOAPClient.java:343)
2011-09-29 13:15:39,633 ERROR [STDERR] at com.sun.identity.shared.jaxrpc.SOAPClient.send(SOAPClient.java:311)
2011-09-29 13:15:39,636 ERROR [STDERR] at com.sun.identity.idm.remote.IdRemoteServicesImpl.getAttributes(IdRemoteServicesImpl.java:229)
2011-09-29 13:15:39,639 ERROR [STDERR] at com.sun.identity.idm.remote.IdRemoteCachedServicesImpl.getAttributes(IdRemoteCachedServicesImpl.java:402)
2011-09-29 13:15:39,642 ERROR [STDERR] at com.sun.identity.idm.AMIdentity.getAttributes(AMIdentity.java:344)
2011-09-29 13:15:39,645 ERROR [STDERR] at org.apache.jsp.MainPageJSP_jsp.getCredenzialiUtente(MainPageJSP_jsp.java:63)
2011-09-29 13:15:39,648 ERROR [STDERR] at org.apache.jsp.MainPageJSP_jsp._jspService(MainPageJSP_jsp.java:217)
2011-09-29 13:15:39,653 ERROR [STDERR] at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
2011-09-29 13:15:39,660 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
2011-09-29 13:15:39,664 ERROR [STDERR] at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:387)
2011-09-29 13:15:39,666 ERROR [STDERR] at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
2011-09-29 13:15:39,669 ERROR [STDERR] at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
2011-09-29 13:15:39,673 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
2011-09-29 13:15:39,676 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
2011-09-29 13:15:39,678 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
2011-09-29 13:15:39,683 ERROR [STDERR] at com.sun.identity.agents.filter.AmAgentBaseFilter.allowRequestToContinue(AmAgentBaseFilter.java:127)
2011-09-29 13:15:39,685 ERROR [STDERR] at com.sun.identity.agents.filter.AmAgentBaseFilter.doFilter(AmAgentBaseFilter.java:76)
2011-09-29 13:15:39,690 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
2011-09-29 13:15:39,697 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
2011-09-29 13:15:39,701 ERROR [STDERR] at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
2011-09-29 13:15:39,705 ERROR [STDERR] at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
2011-09-29 13:15:39,710 ERROR [STDERR] at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
2011-09-29 13:15:39,713 ERROR [STDERR] at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
2011-09-29 13:15:39,716 ERROR [STDERR] at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408)
2011-09-29 13:15:39,725 ERROR [STDERR] at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442)
2011-09-29 13:15:39,729 ERROR [STDERR] at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115)
2011-09-29 13:15:39,730 ERROR [STDERR] at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:178)
2011-09-29 13:15:39,734 ERROR [STDERR] at com.cid.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:92)
2011-09-29 13:15:39,741 ERROR [STDERR] at com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.renderView(ViewHandlerImpl.java:295)
2011-09-29 13:15:39,744 ERROR [STDERR] at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
2011-09-29 13:15:39,747 ERROR [STDERR] at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
2011-09-29 13:15:39,750 ERROR [STDERR] at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
2011-09-29 13:15:39,753 ERROR [STDERR] at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
2011-09-29 13:15:39,761 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
2011-09-29 13:15:39,765 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
2011-09-29 13:15:39,768 ERROR [STDERR] at com.cid.faces.webapp.CidWebUIFilter._invokeDoFilter(CidWebUIFilter.java:239)
2011-09-29 13:15:39,776 ERROR [STDERR] at com.cid.faces.webapp.CidWebUIFilter._doFilterImpl(CidWebUIFilter.java:196)
2011-09-29 13:15:39,780 ERROR [STDERR] at com.cid.faces.webapp.CidWebUIFilter.doFilter(CidWebUIFilter.java:80)
2011-09-29 13:15:39,788 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
2011-09-29 13:15:39,793 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
2011-09-29 13:15:39,797 ERROR [STDERR] at com.sun.identity.agents.filter.AmAgentBaseFilter.allowRequestToContinue(AmAgentBaseFilter.java:127)
2011-09-29 13:15:39,803 ERROR [STDERR] at com.sun.identity.agents.filter.AmAgentBaseFilter.doFilter(AmAgentBaseFilter.java:76)
2011-09-29 13:15:39,807 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
2011-09-29 13:15:39,810 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
2011-09-29 13:15:39,813 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
2011-09-29 13:15:39,820 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
2011-09-29 13:15:39,825 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
2011-09-29 13:15:39,829 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
2011-09-29 13:15:39,833 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
2011-09-29 13:15:39,836 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
2011-09-29 13:15:39,843 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
2011-09-29 13:15:39,846 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
2011-09-29 13:15:39,851 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
2011-09-29 13:15:39,854 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
2011-09-29 13:15:39,857 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
2011-09-29 13:15:39,860 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
2011-09-29 13:15:39,862 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
2011-09-29 13:15:39,866 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
2011-09-29 13:15:39,870 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
2011-09-29 13:15:39,874 ERROR [STDERR] at java.lang.Thread.run(Thread.java:619)
2011-09-29 13:15:39,877 INFO [STDOUT] OUT getCredenziali: tonywebAs you can see I'm using the "sample" agentApp.war.
What am I missing ? It "crashes" as for getAttributes() call :/
I thought it could be because I didn't setup LDAP DataStore ... so I set up Active Directory Data Store.
While in openAM console (from outside domain) I can see (from Subjects tab) Active Directory users and relative information
(like FirstName (=givenName), Surname (=sn), Full Name (=cn), etc.) ... when I try again with idm/EndUser (from a domain machine)
I get the same error:
Message:Plug-in encountered an ldap exception. LDAP Error 32: The entry specified in the request does not exist.What should I do now ?
If you need more clarifications ... just ask :)
Thank you in advance and sorry for the big post.
Best Regards,
Tony
P.D. By the way, my OpenAM configuration does not create any "amAuthWindowsDesktopSSO.log" :(
I setup, from opensso/Debug.jsp message level for Authentication ... but it still doesn't create this log ... can you please tell me how to let openAM write it ?
Again thank youWeird enough, changing to ADAM data store (and not "standard" AD datastore) solved the problem :D
I still wonder why since both plugins share the same java [implementing] class...
Regards,
Tony -
Help with BufferedImage and JPanel
I have a program that should display some curves, but thats not the problem, the real problem is when i copy the image contained in the JPanel to the buffered image then i draw something there and draw it back to the JPanel. My panel initialy its white but after the operation it gets gray
Please if some one could help with this
here is my code divided in three classes
//class VentanaPrincipal
package gui;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JSeparator;
import javax.swing.border.LineBorder;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
public class VentanaPrincipal extends javax.swing.JFrame {
//Set Look & Feel
try {
javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch(Exception e) {
e.printStackTrace();
private JMenuItem helpMenuItem;
private JMenu jMenu5;
private JMenuItem deleteMenuItem;
private JSeparator jSeparator1;
private JMenuItem pasteMenuItem;
private JLabel jLabel4;
private JLabel jLabel5;
private JLabel jLabel3;
private JLabel jLabel2;
private JLabel jLabel1;
private JButton jSPLineButton;
private JButton jHermiteButton;
private JButton jBezierButton;
private JPanel jPanel2;
private JPanel jPanel1;
private JMenuItem jResetMenuItem1;
private JMenuItem copyMenuItem;
private JMenuItem cutMenuItem;
private JMenu jMenu4;
private JMenuItem exitMenuItem;
private JSeparator jSeparator2;
private JMenu jMenu3;
private JMenuBar jMenuBar1;
* Variables no autogeneradas
private int botonSeleccionado;
* Auto-generated main method to display this JFrame
public static void main(String[] args) {
VentanaPrincipal inst = new VentanaPrincipal();
inst.setVisible(true);
public VentanaPrincipal() {
super();
initGUI();
private void initGUI() {
try {
this.setTitle("Info3 TP 2");
jPanel1 = new pizarra();
getContentPane().add(jPanel1, BorderLayout.WEST);
jPanel1.setPreferredSize(new java.awt.Dimension(373, 340));
jPanel1.setMinimumSize(new java.awt.Dimension(10, 342));
jPanel1.setBackground(new java.awt.Color(0,0,255));
jPanel1.setBorder(BorderFactory.createCompoundBorder(
new LineBorder(new java.awt.Color(0, 0, 0), 1, true),
null));
BufferedImage bufimg = (BufferedImage)jPanel1.createImage(jPanel1.getWidth(), jPanel1.getHeight());
((pizarra) jPanel1).setBufferedImage(bufimg);
jPanel2 = new JPanel();
getContentPane().add(jPanel2, BorderLayout.CENTER);
GridBagLayout jPanel2Layout = new GridBagLayout();
jPanel2Layout.rowWeights = new double[] {0.0, 0.0, 0.0, 0.0};
jPanel2Layout.rowHeights = new int[] {69, 74, 76, 71};
jPanel2Layout.columnWeights = new double[] {0.0, 0.0, 0.1};
jPanel2Layout.columnWidths = new int[] {83, 75, 7};
jPanel2.setLayout(jPanel2Layout);
jBezierButton = new JButton();
jPanel2.add(jBezierButton, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
jBezierButton.setText("Bezier");
jBezierButton.setFont(new java.awt.Font("Tahoma",0,10));
jBezierButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
bezierActionPerformed();
jHermiteButton = new JButton();
jPanel2.add(jHermiteButton, new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
jHermiteButton.setText("Hermite");
jHermiteButton.setFont(new java.awt.Font("Tahoma",0,10));
jSPLineButton = new JButton();
jPanel2.add(jSPLineButton, new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
jSPLineButton.setText("SP Line");
jSPLineButton.setFont(new java.awt.Font("Tahoma",0,10));
jLabel1 = new JLabel();
jPanel2.add(jLabel1, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
jLabel1.setText("Posicion Mouse");
jLabel2 = new JLabel();
jPanel2.add(jLabel2, new GridBagConstraints(1, 3, 1, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.NONE, new Insets(12, 0, 0, 0), 0, 0));
jLabel2.setText("X:");
jLabel3 = new JLabel();
jPanel2.add(jLabel3, new GridBagConstraints(1, 3, 1, 1, 0.0, 0.0, GridBagConstraints.SOUTH, GridBagConstraints.NONE, new Insets(0, 0, 12, 0), 0, 0));
jLabel3.setText("Y:");
jLabel4 = new JLabel();
jPanel2.add(jLabel4, new GridBagConstraints(2, 3, 1, 1, 0.0, 0.0, GridBagConstraints.NORTH, GridBagConstraints.NONE, new Insets(12, 0, 0, 0), 0, 0));
jLabel4.setText("-");
jLabel5 = new JLabel();
jPanel2.add(jLabel5, new GridBagConstraints(2, 3, 1, 1, 0.0, 0.0, GridBagConstraints.SOUTH, GridBagConstraints.NONE, new Insets(0, 0, 12, 0), 0, 0));
jLabel5.setText("-");
this.setSize(600, 400);
jMenuBar1 = new JMenuBar();
setJMenuBar(jMenuBar1);
jMenu3 = new JMenu();
jMenuBar1.add(jMenu3);
jMenu3.setText("Archivo");
jSeparator2 = new JSeparator();
jMenu3.add(jSeparator2);
exitMenuItem = new JMenuItem();
jMenu3.add(exitMenuItem);
exitMenuItem.setText("Exit");
jResetMenuItem1 = new JMenuItem();
jMenu3.add(jResetMenuItem1);
jResetMenuItem1.setText("Reset");
jMenu4 = new JMenu();
jMenuBar1.add(jMenu4);
jMenu4.setText("Edit");
cutMenuItem = new JMenuItem();
jMenu4.add(cutMenuItem);
cutMenuItem.setText("Cut");
copyMenuItem = new JMenuItem();
jMenu4.add(copyMenuItem);
copyMenuItem.setText("Copy");
pasteMenuItem = new JMenuItem();
jMenu4.add(pasteMenuItem);
pasteMenuItem.setText("Paste");
jSeparator1 = new JSeparator();
jMenu4.add(jSeparator1);
deleteMenuItem = new JMenuItem();
jMenu4.add(deleteMenuItem);
deleteMenuItem.setText("Delete");
jMenu5 = new JMenu();
jMenuBar1.add(jMenu5);
jMenu5.setText("Help");
helpMenuItem = new JMenuItem();
jMenu5.add(helpMenuItem);
helpMenuItem.setText("Help");
} catch (Exception e) {
e.printStackTrace();
private void bezierActionPerformed(){
botonSeleccionado = 1;
((pizarra) jPanel1).setTipoFigura(botonSeleccionado);
((pizarra) jPanel1).pintarGrafico();
//class graphUtils
package func;
import java.awt.Image;
import java.awt.Point;
import java.awt.image.BufferedImage;
public class graphUtils {
public static void dibujarPixel(BufferedImage img, int x, int y, int color){
img.setRGB(x, y, color);
public static void dibujarLinea(BufferedImage img, int x0, int y0, int x1, int y1, int color){
int dx = x1 - x0;
int dy = y1 - y0;
if (Math.abs(dx) > Math.abs(dy)) { // Pendiente m < 1
float m = (float) dy / (float) dx;
float b = y0 - m*x0;
if(dx < 0) dx = -1; else dx = 1;
while (x0 != x1) {
x0 += dx;
dibujarPixel(img, x0, Math.round(m*x0 + b), color);
} else
if (dy != 0) { // Pendiente m >= 1
float m = (float) dx / (float) dy;
float b = x0 - m*y0;
if(dy < 0) dy = -1; else dy = 1;
while (y0 != y1) {
y0 += dy;
dibujarPixel(img, Math.round(m*y0 + b), y0, color);
public static void dibujarBezier(BufferedImage img, Point puntos, int color){
//class pizarra
package gui;
import javax.swing.*;
import sun.awt.VerticalBagLayout;
import sun.security.krb5.internal.bh;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import func.graphUtils;
* esta clase pizarra extiende la clase JPanel y se agregan las funciones de pintado
* y rellenado que se muestra en pantalla dentro del panel que se crea con esta clase
* @author victorg
public class pizarra extends JPanel implements MouseListener{
private int tipoFigura;
BufferedImage bufferImagen;
Image img;
Graphics img_gc;
private Color colorRelleno, colorLinea;
private Point puntosBezier[] = new Point[3];
public pizarra(){
super();
addMouseListener(this);
//this.setBackground(Color.BLUE);
colorLinea = Color.BLUE;
public void setTipoFigura(int seleccion){
// se setea para ver si es bezier, hermite, SP line
tipoFigura = seleccion;
public void setTipoRelleno(int seleccion){
public void setColorRelleno(Color relleno){
colorRelleno = relleno;
public void setColorLinea(Color linea){
colorLinea = linea;
public void setBufferedImage(BufferedImage bufimg){
bufferImagen = bufimg;
public void pintarGrafico(){
Graphics g = this.getGraphics();
g.setColor(colorLinea);
//accion ejecutada cuando se selecciona para graficar un poligono
if(tipoFigura == 1){// bezier
if(bufferImagen == null){
//mantiene guardada la imagen cuando la pantalla pasa a segundo plano
bufferImagen = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
this.setBackground(Color.WHITE);
bufferImagen = (BufferedImage)createImage(getWidth(), getHeight());
//bufferImagen = this.createImage(getWidth(), getHeight());
//g.drawImage(bufferImagen,0,0,this);
graphUtils.dibujarLinea(bufferImagen,10, 10, 50, 50, colorLinea.getRGB());
g.drawImage(bufferImagen,0,0,this);
protected void paintComponent(Graphics g) { // llamado al repintar
//setBackground(colorFondo);
super.paintComponent(g);
// Graphics2D g2 = (Graphics2D)g;
// g2.drawImage(bufferImagen, 0,0, this);
// g2.dispose();
public void mouseClicked(MouseEvent arg0) {
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}1) Swing related questions should be posted in the Swing forum.
Custom painting should be done in the paintComponent(..) method. You created a "pintarGraphico" method to do the custom painting, but that method is only execute once. When Java determines that the panel needs to be repainted, the paintComponent() method is executed which simply does a super.paintComponent(), which in turn simply paints the background of the panel overwriting you custom painting.
Maybe you are looking for
-
Problems with iPhoto after upgrading to 11
When I upgraded to iphoto 11,my photos showed up in the library, but then when I clicked on them to enlarge them some of them (not all) were a black exclamation point. Following advice on this forum, I rebuild the library. Now my entire library is j
-
I have set up a menu with auto action buttons and for some reason mouse clicks don't work. I can click multiple times on a button without anything happening. However, navigating with arrows on the keyboard works fine. Is there anyway I can enable my
-
How do you save your videos in iMovie to a different location on your computer?
Since i upgraded to OSX Mavericks imovie keeps switching itself off when trying to export video to DVD. Genius Bar told me i need to save my videos first then delete imovie and then download imovie from the app store. How do i save my videos in imovi
-
REgarding Assignment details in RRI
Hi Masters Now I have done RRI and this is working fine. There is one modification when I right click on 0calday that should not go to jump target(receiver query report). Hence, i have fixed delete type in assginment details in RSBBS for 0calday. Eve
-
Input data type of Matlab script node
Hi, I have 1D array of complex number in single precision. Matlab script node is used to import data into Matlab and do some data processing, and then export. Data type of input is currently double precision. How to re-define this input data type of